var f,g:text;
v:array[0..1010,0..1010]of longint;
n,k,p,i,c,j,t:longint;
begin
assign(f,'tablete.in');
assign(g,'tablete.out');
reset(f);
rewrite(g);
read(f,n,k);
p:=n div 2;
if (n mod 2=1)then dec(p);
t:=2*n;
for i:=1 to p do
begin
c:=t;
for j:=n downto k+1 do
begin
if (j mod 2=0)then
begin
v[2*i-1,j]:=c;
v[2*i,j]:=c-1;
end else
begin
v[2*i,j]:=c;
v[2*i-1,j]:=c-1;
end;
dec(c,2);
end;
v[2*i-1,k]:=c;
v[2*i,k]:=c-2;
for j:=1 to k-1 do v[2*i,j]:=j+t-2*n;
c:=k+t-2*n;
for j:=1 to k-1 do
begin
if (c=v[2*i,k])then inc(c);
v[2*i-1,j]:=c;
inc(C);
end;
inc(t,2*n);
end;
if (n mod 2=1)then
begin
inc(t,n);
c:=t;
for i:=n downto k+1 do
begin
if (i mod 2=0)then
begin
v[n-2,i]:=c;
v[n-1,i]:=c-1;
v[n,i]:=c-2;
end else
begin
v[n,i]:=c;
v[n-1,i]:=c-1;
v[n-2,i]:=c-2;
end;
dec(c,3);
end;
if (k mod 2=0)then
begin
{ dec(v[n-2,k+1]);}
v[n-2,k]:=c-4;
v[n-1,k]:=c-2;
v[n,k]:=c;
for i:=1 to k-1 do v[n-2,i]:=i+t-3*n;
c:=k+t-3*n;
for i:=1 to k-1 do
begin
if (c=v[n-2,k])or(c=v[n,k])then inc(c);
if (c=v[n-2,k])or(c=v[n,k])then inc(c);
v[n-1,i]:=c;
inc(c);
end;
for i:=1 to k-1 do
begin
if (c=v[n-2,k])or(c=v[n-1,k])then inc(c);
if (c=v[n-2,k])or(c=v[n-1,k])then inc(c);
v[n,i]:=c;
inc(c);
end;
end else
begin
dec(v[n,k+1]);
v[n-2,k]:=c+1;
v[n-1,k]:=c-3;
v[n,k]:=c-5;
for i:=1 to k-1 do v[n,i]:=i+t-3*n;
c:=k+t-3*n;
for i:=1 to k-1 do
begin
if (c=v[n-2,k])or(c=v[n,k])then inc(c);
if (c=v[n-2,k])or(c=v[n,k])then inc(c);
v[n-1,i]:=c;
inc(c);
end;
for i:=1 to k-1 do
begin
if (c=v[n,k])or (c=v[n-1,k])then inc(c);
if (c=v[n,k])or (c=v[n-1,k])then inc(c);
v[n-2,i]:=c;
inc(c);
end;
end;
end;
for i:=1 to n do
begin
for j:=1 to n do write(g,v[i,j],' ');
writeln(g);
end;
close(f);
close(g);
end.