# Warnsdroff-q4
# Exs for Section 46, Q.4, p.163, p.274
# inputs: 0 0 or 4 4

M = 12; N = 12
# b[i][j]; the size of the board is (M-4)x(N-4)
b = [[1 for j in range(N)] for i in range(M)]
for s in range(2, M-2):
  for t in range(2, N-2):
    b[s][t] = 0

i, j = map(int, input("Start coords. i j=? ").split())
i += 2
j += 2
b[i][j] = 1
p = 1
while True:
  min = 8
  for s in range(5):
    for t in range(5):
      if abs((s-2)*(t-2)) == 2:
        ip = i + (s-2)
        jp = j + (t-2)
        if b[ip][jp] == 0:
          c = 0
          for ss in range(5):
            for tt in range(5):
              if (abs((ss-2)*(tt-2)) == 2) and \
                 (b[ip+(ss-2)][jp+(tt-2)] == 0):
                c = c+1
          if c < min:
            imin = ip
            jmin = jp
            min = c
  i = imin
  j = jmin
  p += 1
  b[i][j] = p
  if min == 0:
    break
if p < (M-4)*(N-4):
  print("STUCK AT STEP", p)
for i in range(2,M-2):
  for j in range(2,N-2):
    print(f"{b[i][j]:4}", end ='')
  print()
