#include <bits/stdc++.h>
using namespace std;
int lu[1000];
int m[1000][1000] = {0}, vis[1000][1000] = {0};
int n;
void search(int);
int main() {
  cin >> n;
  if (n % 2 == 0)
    for (int j = 1; j <= n; j++) {
      for (int i = 0; i < n / 2; i++) {
        cout << j + i * n << " ";
      }
      int i;
      for (i = 1; i < n / 2; i++) {
        cout << n * n - (n / 2 - i) * n - j + 1 << " ";
      }
      cout << n * n - (n / 2 - i) * n - j + 1 << endl;
    }
  int i, j;
  if (n % 2 == 1) {
    int c = 1;
    for (i = 1; i <= n; i++)
      for (j = 1; j <= n; j++) m[i][j] = c++;
    search(1);
  }
  return 0;
}
void search(int l) {
  if (l == n + 1) {
    for (int o = 1; o < n; o++) cout << lu[o] << " ";
    cout << lu << endl;
    return;
  }
  int i, j;
  for (i = 1; i <= n; i++) {
    if (!vis[l][i]) {
      if (i > 2)
        if (lu[i - 1] != i) return;
      vis[l][i] = 1;
      lu[l] = i;
      search(l + 1);
    }
  }
}
