#include <bits/stdc++.h>
using namespace std;
long long n, a[15];
long long M[5][5];
long long s;
long long check() {
  long long rs[5], cs[5];
  memset(rs, 0, sizeof(rs));
  memset(cs, 0, sizeof(cs));
  long long d1 = 0, d2 = 0;
  for (long long i = 1; i <= n; i++) {
    for (long long j = 1; j <= n; j++) {
      rs[i] += M[i][j];
      cs[j] += M[i][j];
      if (i == j) d1 += M[i][j];
      if (i + j == n + 1) d2 += M[i][j];
    }
  }
  set<long long> st;
  for (long long i = 1; i <= n; i++) st.insert(rs[i]), st.insert(cs[i]);
  st.insert(d1);
  st.insert(d2);
  if (st.size() == 1) {
    s = d1;
    return 1;
  }
  return 0;
}
int main() {
  cin >> n;
  for (long long i = 0; i < n * n; i++) cin >> a[i];
  sort(a, a + n * n);
  do {
    memset(M, 0, sizeof(M));
    long long j = 1, k = 1;
    for (long long i = 0, cnt = 1; i < n * n; i++, cnt++) {
      M[j][k] = a[i];
      k++;
      if (cnt % n == 0) j++, k = 1;
    }
    if (check()) {
      cout << s << '\n';
      for (long long i = 1; i <= n; i++) {
        for (long long j = 1; j <= n; j++) cout << M[i][j] << ' ';
        cout << '\n';
      }
      return 0;
    }
  } while (next_permutation(a, a + n * n));
  return 0;
}
