#include<iostream>
using namespace std;
void change(int *f,int a)
{
int *x,*max,*mix;
int *y,m=1,b,x1;
int *str[10];
max=f;
for(x=f+1;x<f+a*a-1;x++)
{
if(*x>*max) max=x;
}
m=*(f+(a*a-1)/2);
*(f+(a*a-1)/2)=*max;
*max=m;
m=1;
for(m=1;m<=4;m++)
{
if(m==1) mix=f;
else mix=f+1;
for(y=f;y<=f+a*a-1;y++)
{
if(m==2&&y==f) y++;
else if(m==3&&(y==f||y==f+a-1)) y++;
else if(m==4&&(y==f||y==f+a-1||y==f+a*a-a)) y++;
if(*mix>*y) mix=y;
}
if(m==1) {
x1=*f;*f=*mix;
*mix=x1;
}
else if(m==2){
x1=*(f+a-1);*(f+a-1)=*mix;
*mix=x1;
}
else if(m==3){
x1=*(f+a*a-a);*(f+a*a-a)=*mix;
*mix=x1;
}
else {
x1=*(f+a*a-1);*(f+a*a-1)=*mix;
*mix=x1;
}
}
}
int main()
{
void change(int *,int );
int **a,*p,i,j;
int n;
cin>>n;
p=new int[n*n];
a=new int*[n];
for(i=0; i<n; i++)
a[i]=p+n*i;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
cin>>a[i][j];
change(p,n);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
delete []p;
delete []a;
return 0;
}