#include <bits/stdc++.h>
using namespace std;
int n, ar[200001], f[10001], g[21][21], f1[10001];
int main() {
  ios::sync_with_stdio(0), cin.tie(NULL), cout.tie(NULL);
  cin >> n;
  for (int i = 0; i < n * n; i++) {
    cin >> ar[i];
    f[ar[i]]++;
    f1[ar[i]]++;
  }
  if (n & 1) {
    int wh = 0, ck = 0, od = 0;
    for (int i = 1; i <= 1000; i++) {
      while (f1[i] >= 4) {
        wh += 4;
        f1[i] -= 4;
      }
      if (f1[i] >= 2) {
        ck += 2;
        f1[i] -= 2;
      }
      if (f1[i] & 1) od++;
    }
    if ((n * n - 1) == wh + ck && od == 1) {
      for (int i = 1; i <= n / 2; i++) {
        for (int j = 1; j <= n / 2; j++) {
          bool b = 1;
          for (int x = 1; x <= 1000; x++) {
            if (f[x] >= 4) {
              f[x] -= 4;
              g[i][j] = g[n - i + 1][j] = x;
              g[i][n - j + 1] = g[n - i + 1][n - j + 1] = x;
              b = 0;
              break;
            }
          }
          if (b) {
            cout << "NO\n";
            return 0;
          }
        }
      }
      int a = 1;
      for (int j = 1; j <= 1000; j++) {
        if (f[j] & 1) {
          g[n / 2 + 1][n / 2 + 1] = j;
          f[j]--;
        }
        while (f[j] && a <= n / 2) {
          g[a][n / 2 + 1] = g[n - a + 1][n / 2 + 1] = j;
          f[j] -= 2;
          a++;
        }
      }
      a = 1;
      for (int j = 1; j <= 1000; j++) {
        while (f[j] && a <= n / 2) {
          g[n / 2 + 1][a] = g[n / 2 + 1][n - a + 1] = j;
          f[j] -= 2;
          a++;
        }
      }
      cout << "YES\n";
      for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
          cout << g[i][j] << ' ';
        }
        cout << '\n';
      }
    } else {
      cout << "NO";
      return 0;
    }
  } else {
    int wh = 0;
    for (int i = 1; i <= 1000; i++) {
      wh += f[i] / 4;
    }
    if (wh == n * n / 4) {
      cout << "YES\n";
      for (int i = 1; i <= n / 2; i++) {
        for (int j = 1; j <= n / 2; j++) {
          for (int x = 1; x <= 1000; x++) {
            if (f[x]) {
              f[x] -= 4;
              g[i][j] = g[n - i + 1][j] = x;
              g[i][n - j + 1] = g[n - i + 1][n - j + 1] = x;
              break;
            }
          }
        }
      }
      for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
          cout << g[i][j] << ' ';
        }
        cout << '\n';
      }
    } else {
      cout << "NO\n";
    }
  }
  return 0;
}
