using System;
class Program
{
static void Main()
{
// --- 1. Ввод данных (как обычно, прямо в Main) ---
Console.Write("Введите количество строк (n): ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов (m): ");
int m = int.Parse(Console.ReadLine());
int[,] A = new int[n, m];
Console.WriteLine("\nВведите элементы матрицы:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write($"A[{i},{j}] = ");
A[i, j] = int.Parse(Console.ReadLine());
}
}
// --- 2. Вызов нашего единственного метода ---
// Передаем ему матрицу, а он возвращает нам готовый массив B
int[] B = GetFirstNegatives(A, n, m);
// --- 3. Вывод результата ---
Console.WriteLine("\nМассив B (номера первых отрицательных элементов):");
for (int i = 0; i < n; i++)
{
Console.Write(B[i] + " ");
}
Console.WriteLine();
}
// --- ЕДИНСТВЕННЫЙ МЕТОД: Ищет первые отрицательные элементы ---
// Принимает матрицу (A), количество строк (n) и столбцов (m)
// Возвращает массив с номерами (B)
static int[] GetFirstNegatives(int[,] A, int n, int m)
{
int[] B = new int[n]; // Создаем пустой массив для ответов
for (int i = 0; i < n; i++)
{
B[i] = 0; // По умолчанию ставим 0 (нет отрицательных)
for (int j = 0; j < m; j++)
{
if (A[i, j] < 0) // Если нашли отрицательное число
{
B[i] = j + 1; // Записываем его номер (j + 1)
break; // И сразу выходим из цикла (нам же нужен только ПЕРВЫЙ)
}
}
}
return B; // Возвращаем готовый массив
}
}