#include<stdio.h>
#include<string.h>
int main()
{
FILE *f=fopen("tablete.in","r");
int n,k,i,j,nrimpare,nr,gen=1,rest,gen2=2;
int pare[1000000];
memset(pare,0,500000*sizeof(int));
fscanf(f,"%i%i",&n,&k);
fclose(f);
if((n*n)%2==0)
nrimpare=(n*n)/2;
else
nrimpare=(n*n)/2+1;
nr=nrimpare/(n-1);
rest=nrimpare%(n-1);
f=fopen("tablete.out","w");
for(i=0;i<nr;i++)
{
for(j=0;j<=k-2;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%i ",gen-1);
pare[gen-1]=1;
for(j=k;j<n;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%s","\n");
}
if(rest!=0)
{
if(k>n-rest)
{
for(j=0;j<n-rest-1;j++)
{
while(pare[gen2]==1)
gen2+=2;
fprintf(f,"%i ",gen2);
gen2+=2;
}
for(j=n-rest-1;j<=k-2;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%i ",gen-1);
pare[gen-1]=1;
for(j=k;j<n;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%s","\n");
}
else
{
for(j=0;j<n-rest;j++)
{
while(pare[gen2]==1)
gen2+=2;
fprintf(f,"%i ",gen2);
gen2+=2;
}
for(j=n-rest;j<n;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%s","\n");
}
}
else
{
for(j=0;j<=k-2;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%i ",gen-1);
pare[gen-1]=1;
for(j=k;j<n;j++)
{
fprintf(f,"%i ",gen);
gen+=2;
}
fprintf(f,"%s","\n");
}
for(i=nr+1;i<n;i++)
{
for(j=0;j<n;j++)
{
while(pare[gen2]==1)
gen2+=2;
fprintf(f,"%i ",gen2);
gen2+=2;
}
fprintf(f,"%s","\n");
}
fclose(f);
return 0;
}