#include <bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
const unsigned mod = 998244353;
const unsigned _mod = 1e9 + 7;
const long long infi = 0x3f3f3f3f3f3f3f3fll;
const int inf = 0x3f3f3f3f;
long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
long long qpow(long long x, long long y, long long m) {
  long long ret = 1;
  while (y) {
    if (y & 1ll) ret = ret * x % m;
    y >>= 1ll;
    x = x * x % m;
  }
  return ret;
}
long long ksm(long long x, long long y) {
  long long ret = 1;
  while (y) {
    if (y & 1ll) ret = ret * x % mod;
    y >>= 1ll;
    x = x * x % mod;
  }
  return ret;
}
long long _gcd(long long x, long long y) { return y ? _gcd(y, x % y) : x; }
int n, a[20], x[20][2], k, c[20], b[6][6], s;
int rec(int u, int v) {
  if ((u == n - 1) && (v == n)) {
    if (s != c[4]) return 0;
    if (s != c[9]) return 0;
    cout << s << '\n';
    for (register int i = 0; i < n; ++i)
      for (register int j = 0; j < n; ++j) cout << b[i][j] << " \n"[j == n - 1];
    return 1;
  }
  if (v == n) v = u, u++;
  if (u == n) v++, u = v;
  for (register int i = 0; i < k; ++i)
    if (x[i][1]) {
      int f = x[i][0];
      b[u][v] = f, x[i][1]--;
      c[u] += f, c[v + 5] += f;
      if (u == v) c[4] += f;
      if (u + v + 1 == n) c[9] += f;
      bool t = 1;
      if (v == n - 1 && s != c[u] || u == n - 1 && s != c[v + 5]) t = 0;
      if (t && u <= v && rec(u, v + 1) || t && u > v && rec(u + 1, v)) return 1;
      x[i][1]++;
      c[u] -= f, c[v + 5] -= f;
      if (u == v) c[4] -= f;
      if (u + v + 1 == n) c[9] -= f;
    }
  return 0;
}
int main() {
  cin >> n;
  for (register int i = 0; i < n * n; ++i) {
    a[i] = read(), s += a[i];
    bool t = 1;
    for (register int j = 0; j < k; ++j)
      if (a[i] == x[j][0]) {
        t = 0, x[j][1]++;
        break;
      }
    if (t) x[k][0] = a[i], x[k][1] = 1, k++;
  }
  s /= n, rec(0, 0);
  return 0;
}
