var a:array[1..1000,1..1000] of longint;
f,g:Text;
x,y,k,n,i,j:longint;
begin
assign(f,'tablete.in'); reset(f);
assign(g,'tablete.out'); rewrite(g);
read(f,n,k);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=(i-1)*n+j;
if (n and 1=1) and (k and 1=0) then begin {impar par}
for i:=1 to n do
if a[i,k] and 1=1 then begin
a[i-1,n]:=a[i,k];
for j:=1 to k do
a[i,j]:=a[i,j]-1;
end;
end;
if (n and 1=1) and (k and 1=1) then begin {impar impar}
a[2,1]:=a[1,k];
for j:=k to n do
a[1,j]:=a[1,j]+1;
for i:=3 to n do
if a[i,k] and 1=1 then begin
a[i-1,n]:=a[i,k];
for j:=1 to k do
a[i,j]:=a[i,j]-1;
end;
end;
if (n and 1=0) and (k and 1=1) then begin {par impar}
for i:=1 to n do
if a[i,k] and 1=1 then begin
x:=a[i,k];
y:=a[i+1,k];
for j:=1 to k do
a[i+1,j]:=a[i+1,j]-1;
for j:=k to n do
a[i,j]:=a[i,j]+1;
a[i,n]:=y;
a[i+1,1]:=x;
end;
end;
for i:=1 to n do begin
for j:=1 to n-1 do
write(g,a[i,j],' ');
writeln(g,a[i,n]);
end;
close(f); close(g);
end.