```csharp
using System;
class Program
{
static void Main()
{
Console.Write("Введите чётное N: ");
int n = int.Parse(Console.ReadLine());
int[,] a = new int[n, n];
int v = 1;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
a[i, j] = v;
v++;
}
}
Console.WriteLine("\nИсходная матрица:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write(a[i, j].ToString().PadLeft(3) + " ");
}
Console.WriteLine();
}
Console.WriteLine("\nОбход с последнего элемента змейкой:");
for (int i = n - 1; i >= 0; i--)
{
if ((n - 1 - i) % 2 == 0)
{
for (int j = n - 1; j >= 0; j--)
{
Console.Write(a[i, j] + " ");
}
}
else
{
for (int j = 0; j < n; j++)
{
Console.Write(a[i, j] + " ");
}
}
}
Console.WriteLine();
}
}
```