public static void Main()
        {
            var matrixHeight = int.Parse(Console.ReadLine());
            var matrixWidth = int.Parse(Console.ReadLine());
            var horseStartRow = int.Parse(Console.ReadLine());
            var horseStartColumn = int.Parse(Console.ReadLine());

            matrix = new int[matrixHeight, matrixWidth];
            moves = new Queue<Horse>();

            var horse = new Horse(horseStartRow, horseStartColumn, StartValue);
            moves.Enqueue(horse);
            MoveThroughChessBoard();
            Output(matrixWidth, matrixHeight);
        }
        private static void TryToMove(Horse knight, int deltaX, int deltaY)
        {
            var newX = knight.X + deltaX;
            var newY = knight.Y + deltaY;

            var isInsideTheMatrix = newX >= 0 && newX < matrix.GetLength(0) &&
                                    newY >= 0 && newY < matrix.GetLength(1);

            if (isInsideTheMatrix)
            {
                if (matrix[newX, newY] == 0)
                {
                    moves.Enqueue(new Horse(newX, newY, knight.Value + 1));
                }
            }
        }