package adpackage;
import java.util.Scanner;
public class zmh {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
int n =scanner.nextInt();
int m =scanner.nextInt();
int x[][]=new int [m][n];//创建二维数组
int k=0;
int i,j;
if(n%2==0)
{
m=m/2;
}
else
m=m/2+1; //按行把数组分成两部分
for(i=0;i<m;i++) //i每加一次,数组再进一层
{
for(j=i;j<n-i;j++){
k++; x[i][j]=k; //第一行,依次进一层
}
for(j=i+1;j<n-i;j++){
k++; x[j][n-i-1]=k;
} //最后一列,依次进一层
for(j=n-i-2;j>=i;j--){
k++; x[n-i-1][j]=k;
} //最后一行,依次进一层
for(j=n-i-2;j>=i+1;j--){
k++; x[j][i]=k;
} //第一列,依次进一层
} //顺时针排序
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
System.out.printf("%5d",x[i][j]);
}
System.out.println();
}
System.out.println();
k=0;
for(i=0;i<m;i++) //i每加一次,数组再进一层
{
for(j=i;j<n-i;j++){
k++; x[j][i]=k;
}
for(j=i+1;j<n-i;j++){
k++; x[n-i-1][j]=k;
}
for(j=n-i-2;j>=i;j--){
k++; x[j][n-i-1]=k;
}
for(j=n-i-2;j>=i+1;j--){
k++; x[i][j]=k;
}
} //逆时针排序
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
System.out.printf("%5d",x[i][j]);
}
System.out.println();
}
}
}