H, W = map(int, input().split()) ans = 0 grid = [] if H % 2 == 0 and W % 2 == 0: ans = H * W grid = [[1] * W for _ in range(H)] elif H % 2 == 0: # W is odd ans = H * (W - 1) for _ in range(H): row = [1] * (W - 1) + [0] grid.append(row) elif W % 2 == 0: # H is odd ans = (H - 1) * W for _ in range(H - 1): grid.append([1] * W) grid.append([0] * W) else: # Both are odd ans = (H - 1) * (W - 1) + (H - 1) + (W - 1) for i in range(H): row = [] for j in range(W): if i < H - 1 and j < W - 1: row.append(1) elif i < H - 1 or j < W - 1: row.append(1) else: row.append(0) grid.append(row) print(ans) for row in grid: print(' '.join(map(str, row)))