обясните пожалуйста эту программу на С#
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
{
int n, m;
Console.Write("Введите количество строк: ");
n = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите количество столбцов: ");
m = Convert.ToInt32(Console.ReadLine());
int[,] a = new int[n, m];
Random r = new Random();
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
a[i, j] = r.Next(-5, 5);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write("{0,3}\t", a[i, j]);
}
Console.WriteLine();
}
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (IsMinInRow(a, i, a[i, j]) && IsMaxInColumn(a, j, a[i, j]))
Console.WriteLine("Седловая точка: a[{0}, {1}] = {2}", i, j, a[i, j]);
}
}
Console.ReadLine();
}
}
static bool IsMinInRow(int[,] a, int i, int value)
{
for (int j = 0; j < a.GetLength(1); j++)
if (a[i, j] < value)
return false;
return true;
}
static bool IsMaxInColumn(int[,] matrix, int j, int value)
{
for (int i = 0; i < matrix.GetLength(0); i++)
if (matrix[i, j] > value)
return false;
return true;
}
}
}
и что такое value