def printans(ans): v = 0 for a in ans: v += sum(a) print(v) for a in ans: print(*a) exit() def rot90(A): # 時計回りに90度回転 return list(zip(*(A[::-1]))) H, W = map(int, input().split()) if H % 2 == 0 and W % 2 == 0: ans = [[1] * W for _ in range(H)] printans(ans) if H % 2 == 0 and W % 2: ans = [[1] * W for _ in range(H)] for i in range(H): ans[i][-1] = 0 printans(ans) if H % 2 and W % 2 == 0: ans = [[1] * W for _ in range(H)] for j in range(W): ans[-1][j] = 0 printans(ans) if H < W: H, W = W, H ans = [[1] * W for _ in range(H)] for i in range(W): ans[i][i] = 0 for i in range(W, H): ans[i][-1] = 0 ans = rot90(ans) printans(ans) else: ans = [[1] * W for _ in range(H)] for i in range(W): ans[i][i] = 0 for i in range(W, H): ans[i][-1] = 0 printans(ans)