c34 = [[1, 2, 2, 2], [1, 2, 1, 2], [1, 1 ,1, 2]] c36 = [[1, 3, 3, 3, 3, 2], [1, 3, 1, 2, 3, 2], [1, 1, 1, 2, 2, 2]] def mainc(h0, h1, w0, w1, t): h = h1-h0 w = w1-w0 if h < 3: return elif h == 3: if w % 2: return elif w == 4: for y in range(h): for x in range(w): Ans[h0+y][w0+x] = c34[y][x]+t return elif w == 6: for y in range(h): for x in range(w): Ans[h0+y][w0+x] = c36[y][x]+t return else: for y in range(h): for x in range(4): Ans[h0+y][w1-4+x] = c34[y][x]+t mainc(h0, h1, w0, w1-4, t+2) return elif h == 4: t0 = t+1 t1 = t+2 Ans[h0][w0] = t0 Ans[h0+1][w0] = t0 Ans[h0+2][w0] = t0 Ans[h0+3][w0] = t1 Ans[h0][w1-1] = t0 Ans[h0+1][w1-1] = t1 Ans[h0+2][w1-1] = t1 Ans[h0+3][w1-1] = t1 for y in range(h0, h1): for x in range(w0+1, w1-1): if not (y-h0) % 2: Ans[y][x] = t0 else: Ans[y][x] = t1 return elif h == w == 5 or h > 5: for x in range(w0, w1): Ans[h0][x] = t+1 Ans[h1-1][x] = t+1 for y in range(h0+1, h1-1): Ans[y][w1-1] = t+1 mainc(h0+1, h1-1, w0, w1-1, t+1) return else: for y in range(h0, h1): Ans[y][w0] = t+1 Ans[y][w1-1] = t+1 for x in range(w0+1, w1-1): Ans[h1-1][x] = t+1 mainc(h0, h1-1, w0+1, w1-1, t+1) return T4 = [[2, 2, 2, 3], [1, 2, 3, 3], [1, 1, 4, 3], [1, 4, 4, 4]] T5 = [[5, 5, 5, 5], [2, 2, 5, 3], [1, 2, 3, 3], [1, 1, 4, 3], [1, 4, 4, 4]] T3 = [[1, 2, 2, 2, 2, 4], [1, 1, 2, 3, 4, 4], [1, 3, 3, 3, 3, 4]] def maint(h0, h1, w0, w1, t): h = h1-h0 w = w1-w0 if h < 3: return elif h == 3: if w < 6: return else: P = [2, 4, 3] for y in range(3): for x in range(-2, 5): if x < 0: Bns[y+h0][x+w1] = T3[y][x]+t else: Bns[y+h0][x+w0] = T3[y][x]+t for y in range(3): for x in range(w0+4, w1-2): Bns[y+h0][x] = P[y]+t return elif h == 4: P = [2, 3, 1, 4] for y in range(h): for x in range(-2, 2): if x < 0: Bns[y+h0][x+w1] = T4[y][x]+t else: Bns[y+h0][x+w0] = T4[y][x]+t for y in range(h): for x in range(w0+2, w1-2): Bns[y+h0][x] = P[y]+t return elif h == 5: P = [5, 2, 3, 1, 4] for y in range(h): for x in range(-2, 2): if x < 0: Bns[y+h0][x+w1] = T5[y][x]+t else: Bns[y+h0][x+w0] = T5[y][x]+t for y in range(h): for x in range(w0+2, w1-2): Bns[y+h0][x] = P[y]+t return elif h <= 7: t0 = t+1 t1 = t+2 t2 = t+3 for y in range(h0, h1): Bns[y][w1-1] = t0 for x in range(w0+2, w1-1): Bns[h1-2][x] = t0 Bns[h1-1][x] = t1 Bns[h1-2][w0] = t2 Bns[h1-2][w0+1] = t1 Bns[h1-1][w0] = t1 Bns[h1-1][w0+1] = t1 maint(h0, h1-2, w0, w1-1, t+2) return else: for y in range(-2, 2): for x in range(-2, 2): if y < 0 and x < 0: Bns[y+h1][x+w1] = T4[y][x]+t elif y < 0: Bns[y+h1][x+w0] = T4[y][x]+t elif x < 0: Bns[y+h0][x+w1] = T4[y][x]+t else: Bns[y+h0][x+w0] = T4[y][x]+t for y in range(h0+2, h1-2): Bns[y][w0] = t+1 Bns[y][w0+1] = t+2 Bns[y][w1-2] = t+4 Bns[y][w1-1] = t+3 for x in range(w0+2, w1-2): Bns[h0+0][x] = t+2 Bns[h0+1][x] = t+3 Bns[h1-2][x] = t+1 Bns[h1-1][x] = t+4 maint(h0+2, h1-2, w0+2, w1-2, t+4) return def mainct(h0, h1, w0, w1, t): h = h1-h0 w = w1-w0 if h < 3: return elif h == 3: t0 = t+1 t1 = t+2 for y in range(h0, h1): Cns[y][w0] = t0 Cns[y][w1-1] = t1 for x in range(w0+1, w1-1): for y in range(h0, h1): if (y-h0) % 2: Cns[y][x] = t0 else: Cns[y][x] = t1 return elif h == 4: t0 = t+1 t1 = t+2 t2 = t+3 for y in range(h0, h1-1): Cns[y][w0] = t0 Cns[y][w1-1] = t1 for x in range(w0+1, w1-1): for y in range(h0, h1-1): if (y-h0) % 2: Cns[y][x] = t0 else: Cns[y][x] = t1 Cns[h0+2][w0+1] = t2 for x in range(w0, w1): Cns[h0+3][x] = t2 return else: for x in range(w0, w1): Cns[h0][x] = t+1 Cns[h1-1][x] = t+1 for y in range(h0+1, h1-1): Cns[y][w1-1] = t+1 mainct(h0+1, h1-1, w0, w1-1, t+1) return h, w = map(int, input().split()) f = 0 if h > w: h, w = w, h f = 1 Ans = [[-1 for _ in range(w)] for _ in range(h)] Bns = [[-1 for _ in range(w)] for _ in range(h)] Cns = [[-1 for _ in range(w)] for _ in range(h)] mainc(0, h, 0, w, 0) maint(0, h, 0, w, 0) mainct(0, h, 0, w, 0) ma0 = ma1 = mb0 = mb1 = mc0 = mc1 = 0 for y in range(h): for x in range(w): ma0 = min(ma0, Ans[y][x]) ma1 = max(ma1, Ans[y][x]) mb0 = min(mb0, Bns[y][x]) mb1 = max(mb1, Bns[y][x]) mc0 = min(mc0, Cns[y][x]) mc1 = max(mc1, Cns[y][x]) if f: Ans = [[Ans[y][x] for y in range(h)] for x in range(w)] Bns = [[Bns[y][x] for y in range(h)] for x in range(w)] Cns = [[Cns[y][x] for y in range(h)] for x in range(w)] if ma0 == -1: print(-1) else: print(ma1) for a in Ans: print(*a) if mb0 == -1: print(-1) else: print(mb1) for a in Bns: print(*a) if mc0 == -1: print(-1) else: print(mc1) for a in Cns: print(*a)