#include <iostream>
#include <windows.h>
using namespace std;
int main ()
{ int j,k,i,N,x=1,y=-1,t;
cout << "(N x N), N="; cin>>N;
int* a=new int[N*N];
int** p=new int*[N];
for(j=0;j-N;p[j++]=&a[j*N]);
for(j=k=i=0;i++-N*N/2;p[k][j]=i,j+=x,k+=y,t=1-2*(j<0||k<0),x*=t,y*=t,j+=(j<0),k+=(k<0));
for(i--;++i-N*N; p[k][j]=i,j+=x,k+=y,t=2*(j>=N||k>=N),x*=1-t,y*=1-t,j+=t-3*(j>=N),k+=t-3*(k>=N));
p[N-1][N-1]=i;
for(j=0;j-N;j++,cout << endl) for(k=0;k-N;k++) cout << p[j][k] << '\t';
return 0;
}