#include <bits/stdc++.h>
using namespace std;
inline bool compare(long long int i, long long int j) { return i < j; }
template <typename T>
T gcd(T a, T b);
int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[8] = {0, -1, -1, -1, 0, 1, 1, 1};
long long int p2[63] = {1,
                        2,
                        4,
                        8,
                        16,
                        32,
                        64,
                        128,
                        256,
                        512,
                        1024,
                        2048,
                        4096,
                        8192,
                        16384,
                        32768,
                        65536,
                        131072,
                        262144,
                        524288,
                        1048576,
                        2097152,
                        4194304,
                        8388608,
                        16777216,
                        33554432,
                        67108864,
                        134217728,
                        268435456,
                        536870912,
                        1073741824,
                        2147483648,
                        4294967296,
                        8589934592,
                        17179869184,
                        34359738368,
                        68719476736,
                        137438953472,
                        274877906944,
                        549755813888,
                        1099511627776,
                        2199023255552,
                        4398046511104,
                        8796093022208,
                        17592186044416,
                        35184372088832,
                        70368744177664,
                        140737488355328,
                        281474976710656,
                        562949953421312,
                        1125899906842624,
                        2251799813685248,
                        4503599627370496,
                        9007199254740992,
                        18014398509481984,
                        36028797018963968,
                        72057594037927936,
                        144115188075855872,
                        288230376151711744,
                        576460752303423488,
                        1152921504606846976,
                        2305843009213693952,
                        4611686018427387904};
int main() {
  long long int number_of_test_case = 1, test_case;
  for (test_case = 1; test_case <= number_of_test_case; test_case++) {
    long long int i, j, n, k;
    cin >> n;
    long long int nn = n * n;
    j = 1;
    for (i = 1; i <= (n); i++) {
      for (k = 0; k < (n / 2); k++)
        cout << j + k << " " << nn - j - k + 1 << " ";
      j += k;
      cout << endl;
    }
  }
  return 0;
}
template <typename T>
T gcd(T a, T b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
