#include <bits/stdc++.h>
using namespace std;
int s, n, b[7][7], a[49], used[49], n2;
bool check() {
  for (int i = 0; i < (int)(n); i++) {
    int sr = 0;
    for (int j = 0; j < (int)(n); j++) sr += b[i][j];
    if (sr != s) return false;
    sr = 0;
    for (int j = 0; j < (int)(n); j++) sr += b[j][i];
    if (sr != s) return false;
  }
  int sr = 0;
  for (int i = 0; i < (int)(n); i++) sr += b[i][i];
  if (sr != s) return false;
  sr = 0;
  for (int i = 0; i < (int)(n); i++) sr += b[i][n - 1 - i];
  if (sr != s) return false;
  return true;
}
void rec(int i, int j, int sr) {
  if (i == n) {
    if (!check()) return;
    for (int q = 0; q < (int)(n); q++) {
      for (int w = 0; w < (int)(n); w++) {
        if (w) printf(" ");
        printf("%d", b[q][w]);
      }
      printf("\n");
    }
    exit(0);
  }
  if (j == n - 1) {
    int r1 = s - sr;
    int r2 = r1;
    int r3 = r1;
    if (i == n - 1) {
      r2 = 0, r3 = 0;
      for (int z = 0; z < (int)(n - 1); z++) r2 += b[z][z], r3 += b[z][n - 1];
      r2 = s - r2, r3 = s - r3;
    }
    if (r1 != r2 || r1 != r3) return;
    for (int q = 0; q < (int)(n2); q++)
      if (!used[q] && a[q] == r1) {
        used[q] = true;
        b[i][j] = a[q];
        rec(i + 1, 0, 0);
        used[q] = false;
        break;
      }
    return;
  }
  if (i == n - 1) {
    int sw = 0;
    for (int z = 0; z < (int)(n - 1); z++) sw += b[z][j];
    int t1 = s - sw;
    int t2 = t1;
    if (j == 0) {
      int ss = 0;
      for (int z = 0; z < (int)(n - 1); z++) ss += b[z][n - 1 - z];
      t2 = s - ss;
    }
    if (t1 != t2) return;
    for (int q = 0; q < (int)(n2); q++)
      if (!used[q] && a[q] == t1) {
        used[q] = true;
        b[i][j] = a[q];
        rec(i, j + 1, sr + a[q]);
        used[q] = false;
      }
    return;
  }
  int lu = a[0] - 1;
  for (int q = 0; q < (int)(n2); q++)
    if (!used[q] && a[q] != lu) {
      used[q] = true;
      b[i][j] = lu = a[q];
      rec(i, j + 1, sr + lu);
      used[q] = false;
    }
}
int aa(int x) { return x < 0 ? -x : x; }
int main() {
  scanf("%d", &n);
  n2 = n * n;
  for (int i = 0; i < (int)(n2); i++) scanf("%d", &a[i]);
  sort(a, a + n2);
  s = 0;
  for (int i = 0; i < (int)(n2); i++) s += a[i];
  s /= n;
  printf("%d\n", s);
  rec(0, 0, 0);
  return 0;
}
