#include<stdio.h>
#include<conio.h>
int N,move,n,a[100][100];
void rotate(int index){
int i,temp,temp1;
temp=a[index][index];
for(i=index+1;i<N-index;i++){
temp1=a[index][i];
a[index][i]=temp;
temp=temp1;
}
for(i=index+1;i<N-index;i++){
temp1=a[i][N-1-n];
a[i][N-1-n]=temp;
temp=temp1;
}
for(i=N-1-index-1;i>index;i--){
temp1=a[N-1-n][i];
a[N-1-n][i]=temp;
temp=temp1;
}
for(i=N-1-index;i>index;i--){
temp1=a[i][index];
a[i][index]=temp;
temp=temp1;
printf("temp=%d",temp);
}
printf("temp=%d\n",temp);
a[index][index]=temp;
}
void main(){
int i,j,num=1;
clrscr();
scanf("%d",&N);
for(i=0;i<N;i++){
for(j=0;j<N;j++){
a[i][j]=num++;
}
}
for(i=0;i<N;i++){
for(j=0;j<N;j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}
move=N/2;
n=0;
printf("move=%d\n",move);
while(move){
for(i=0;i<move;i++){
rotate(n);
}
n++;
move--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}
getch();
}