#include <bits/stdc++.h>
using namespace std;
int a[66], i, j, n, m, k, i1, i2, i3, i4, i0;
int v[32][32], sd[32][32], sg[32][32];
bool f[50];
bool B;
void pri() {
  for (i = 1; i <= n; i++) {
    for (j = 1; j < n; j++) cout << v[i][j] << " ";
    cout << v[i][n] << endl;
  }
}
void go(int x, int y, int I) {
  f[I] = 1;
  v[x][y] = a[I];
  sg[x][y] = sg[x][y - 1] + a[I];
  sd[x][y] = sd[x - 1][y] + a[I];
  if (y == n)
    if (sg[x][y] != k) {
      f[I] = 0;
      return;
    }
  if (x == n)
    if (sd[x][y] != k) {
      f[I] = 0;
      return;
    }
  if (x == n && y == 1) {
    m = 0;
    for (j = 1; j <= n; j++) m += v[j][n - j + 1];
    if (m != k) {
      f[I] = 0;
      return;
    }
  }
  if (x == n && y == n) {
    m = 0;
    for (j = 1; j <= n; j++) m += v[j][j];
    if (m != k) {
      f[I] = 0;
      return;
    }
  }
  if (x == n && y == n && B) {
    pri();
    B = false;
  }
  for (int K = 1; K <= n * n; K++)
    if (!f[K])
      if (B) {
        if (y < n)
          go(x, y + 1, K);
        else
          go(x + 1, 1, K);
      }
  f[I] = 0;
}
int main() {
  cin >> n;
  for (i = 1; i <= n * n; i++) cin >> a[i];
  for (i = 1; i <= n * n; i++) k += a[i];
  k /= n;
  B = 1;
  cout << k << endl;
  for (i = 1; i <= n * n; i++)
    if (B) go(1, 1, i);
}
