#include<stdio.h>
#include<algorithm>
#define maxn 1001
using namespace std;
int n,K;
int used[maxn*maxn];
int a[maxn][maxn];
void read(){
scanf("%d %d",&n,&K);
}
void solve()
{
int nr=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<K;j++)
{
for(;used[nr];nr++);
a[i][j]=nr; used[nr]=1;
}
for(;used[nr];nr++);
if(nr%2==0) a[i][K]=nr,used[nr]=1;
else a[i][K]=nr+1,used[nr+1]=1;
}
for(int i=1;i<=n;i++)
for(int j=K+1;j<=n;j++)
{
for(;used[nr];nr++);
a[i][j]=nr; used[nr]=1;
}
}
void print()
{
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
read();
solve();
print();
fclose(stdin);
fclose(stdout);
return 0;
}