var f:text;
v,zz,l,j,n,i,k:longint;
z:longint;
begin
assign(f,'tablete.in');reset(f);
read(f,n,k);
v:=n*(k-1);
assign(f,'tablete.out');rewrite(f);
for i:=1 to n-1 do
begin
for j:=1 to k-1 do
write(f,(k-1)*(i-1)+j,' ');
j:=k;
if v+(n-k+1)*(i-1)+(j-k+1) mod 2=1 then write(f, v+(n-k+1)*(i-1)+(j-k+1)-1,' ')
else write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
for j:=k+1 to n-1 do
write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
j:=n;
if v+(n-k+1)*(i-1)+(j-k+1) mod 2=0 then
write(f,v+(n-k+1)*(i-1)+(j-k+1)+1,' ');
write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
writeln(f);
end;
i:=n;
for j:=1 to k-2 do
write(f,(k-1)*(i-1)+j,' ');
if n*(k-1) mod 2=0 then write(f,n*(k-1)+1,' ')
else write(f,n*(k-1),' ');
j:=k;
if v+(n-k+1)*(i-1)+(j-k+1) mod 2=1 then write(f, v+(n-k+1)*(i-1)+(j-k+1)-1,' ')
else write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
for j:=k+1 to n-1 do
write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
j:=n;
if v+(n-k+1)*(i-1)+(j-k+1) mod 2=0 then
write(f,v+(n-k+1)*(i-1)+(j-k+1)+1,' ');
write(f,v+(n-k+1)*(i-1)+(j-k+1),' ');
close(f);
end.