# your code goes here
from random import randrange
for n in range(3,5):
def foo(n,q):
t = [[0]*n for _ in range(n)]
r = [0]*n
c = [0]*n
a = n * q * 2
ind = 1
for _ in range(2000):
if a == 0:
break
z = randrange(2)
if z == 0:
x = randrange(n-1)
y = randrange(n)
if t[y][x]==0 and t[y][x+1]==0 and r[y]+1<=q and c[x]+1<=q and c[x+1]+1<=q:
r[y]+=1
c[x]+=1
c[x+1]+=1
t[y][x]=ind
t[y][x+1]=ind
ind += 1
a -= 3
else:
x = randrange(n)
y = randrange(n-1)
if t[y][x]==0 and t[y+1][x]==0 and r[y]+1<=1 and r[y+1]+1<=q and c[x]+1<=q:
r[y]+=1
r[y+1]+=1
c[x]+=1
t[y][x]=ind
t[y+1][x]=ind
ind += 1
a -= 3
if a==0:
print(n,q,a==0)
for y in range(n):
print(*t[y])
return a==0
for q in range(1,n):
for i in range(200):
if foo(n,q):
break
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCgpmcm9tIHJhbmRvbSBpbXBvcnQgcmFuZHJhbmdlCgpmb3IgbiBpbiByYW5nZSgzLDUpOgogICAgZGVmIGZvbyhuLHEpOgogICAgICAgIHQgPSBbWzBdKm4gZm9yIF8gaW4gcmFuZ2UobildCiAgICAgICAgciA9IFswXSpuCiAgICAgICAgYyA9IFswXSpuCiAgICAgICAgYSA9IG4gKiBxICogMgogICAgICAgIGluZCA9IDEKICAgICAgICBmb3IgXyBpbiByYW5nZSgyMDAwKToKICAgICAgICAgICAgaWYgYSA9PSAwOgogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgeiA9IHJhbmRyYW5nZSgyKQogICAgICAgICAgICBpZiB6ID09IDA6CiAgICAgICAgICAgICAgICB4ID0gcmFuZHJhbmdlKG4tMSkKICAgICAgICAgICAgICAgIHkgPSByYW5kcmFuZ2UobikKICAgICAgICAgICAgICAgIGlmIHRbeV1beF09PTAgYW5kIHRbeV1beCsxXT09MCBhbmQgclt5XSsxPD1xIGFuZCBjW3hdKzE8PXEgYW5kIGNbeCsxXSsxPD1xOgogICAgICAgICAgICAgICAgICAgIHJbeV0rPTEKICAgICAgICAgICAgICAgICAgICBjW3hdKz0xCiAgICAgICAgICAgICAgICAgICAgY1t4KzFdKz0xCiAgICAgICAgICAgICAgICAgICAgdFt5XVt4XT1pbmQKICAgICAgICAgICAgICAgICAgICB0W3ldW3grMV09aW5kCiAgICAgICAgICAgICAgICAgICAgaW5kICs9IDEKICAgICAgICAgICAgICAgICAgICBhIC09IDMKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHggPSByYW5kcmFuZ2UobikKICAgICAgICAgICAgICAgIHkgPSByYW5kcmFuZ2Uobi0xKQogICAgICAgICAgICAgICAgaWYgdFt5XVt4XT09MCBhbmQgdFt5KzFdW3hdPT0wIGFuZCByW3ldKzE8PTEgYW5kIHJbeSsxXSsxPD1xIGFuZCBjW3hdKzE8PXE6CiAgICAgICAgICAgICAgICAgICAgclt5XSs9MQogICAgICAgICAgICAgICAgICAgIHJbeSsxXSs9MQogICAgICAgICAgICAgICAgICAgIGNbeF0rPTEKICAgICAgICAgICAgICAgICAgICB0W3ldW3hdPWluZAogICAgICAgICAgICAgICAgICAgIHRbeSsxXVt4XT1pbmQKICAgICAgICAgICAgICAgICAgICBpbmQgKz0gMQogICAgICAgICAgICAgICAgICAgIGEgLT0gMwogICAgICAgIGlmIGE9PTA6CiAgICAgICAgICAgIHByaW50KG4scSxhPT0wKQogICAgICAgICAgICBmb3IgeSBpbiByYW5nZShuKToKICAgICAgICAgICAgICAgIHByaW50KCp0W3ldKQogICAgICAgIHJldHVybiBhPT0wCiAgICBmb3IgcSBpbiByYW5nZSgxLG4pOgogICAgICAgIGZvciBpIGluIHJhbmdlKDIwMCk6CiAgICAgICAgICAgIGlmIGZvbyhuLHEpOgogICAgICAgICAgICAgICAgYnJlYWs=