#include <fstream>
using namespace std;
int punct(int n, int i, int j) {
return (i-1)*n + j;
}
int sus(int n, int i, int j) {
//punct(n, i-1, j)
return (i-2)*n + j;
}
int jos(int n, int i, int j) {
return i*n + j;
}
int stanga(int n, int i, int j) {
return (i-1)*n + j - 1;
}
int dreapta(int n, int i, int j) {
return (i-1)*n + j + 1;
}
void pp(ofstream &fout, int n) {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
fout<<punct(n,i,j)<<" ";
fout<<"\n";
}
}
void pi(ofstream &fout, int n) {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
if ( i % 2 == 1 ) {//linie impara - mutare la stanga - se iau elemente din drepta
if ( j < n )
fout<<dreapta(n, i, j)<<" ";
else
fout<<jos(n, i, j)<<" ";
} else {//linie para - mutare la drepta
if ( j > 1 )
fout<<stanga(n, i, j)<<" ";
else
fout<<sus(n, i, j)<<" ";
}
fout<<"\n";
}
}
void ip(ofstream &fout, int n) {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
fout<<punct(n,i,j)<<" ";
fout<<"\n";
}
}
void ii(ofstream &fout, int n, int k) {
int i, j;
int n2;
if ( (n % 4 == 1) || (n % 4 == 2) ) //caz special
n2 = n - n % 4 - 1;
else
n2 = n;
for (i = 1; i <= n2; i++) {
for (j = 1; j <= n; j++)
if ( i % 4 == 1 ) {//mutare la stanga
if ( j < n )
fout<<dreapta(n, i, j)<<" ";
else
fout<<punct(n, i+2, j)<<" ";
} else if ( i % 4 == 3 ) {//mutare la drepta
if ( j > 1 )
fout<<stanga(n, i, j)<<" ";
else
fout<<punct(n, i-2, j)<<" ";
} else {//nu se modifica nimic
fout<<punct(n, i, j)<<" ";
}
fout<<"\n";
}
//rezolvarea cazului special
for (i = n2 + 1; i <= n; i++) {
for (j = 1; j <= n; j++)
if ( i % 4 == 2 ) {
fout<<punct(n, i, j)<<" ";
} else if ( i % 4 == 1 ){
if ( j <= k )
fout<<stanga(n, i, j)<<" ";
else
fout<<punct(n, i, j)<<" ";
} else {//i % 4 == 0
if ( j < n )
fout<<punct(n, i, j)<<" ";
else
fout<<punct(n, i+1, k)<<" ";
}
fout<<"\n";
}
}
int main() {
ifstream fin("tablete.in");
ofstream fout("tablete.out");
int n, k;
fin>>n>>k;
if ( n % 2 == 0) {//n par
if ( k % 2 == 0) //par par
pp(fout, n);
else //par impar
pi(fout, n);
} else {//n impar
if ( k % 2 == 0) //impar par
ip(fout, n);
else //impar impar
ii(fout, n, k);
}
return 0;
}