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 and W % 2 == 1: ans = H * (W - 1) grid = [[1 if j < W - 1 else 0 for j in range(W)] for _ in range(H)] elif H % 2 == 1 and W % 2 == 0: ans = (H - 1) * W grid = [[1] * W for _ in range(H - 1)] + [[0] * W] else: # Both H and W are odd ans = (H - 1) * (W - 1) + (H - 1) + (W - 1) - 2 grid = [[0] * W for _ in range(H)] # Fill first H-1 rows and W-1 columns for i in range(H - 1): for j in range(W - 1): grid[i][j] = 1 # Fill last row's first W-1 cells for j in range(W - 1): grid[H-1][j] = 1 # Fill last column's first H-1 cells for i in range(H - 1): grid[i][W-1] = 1 # Ensure the bottom-right corner is 0 grid[H-1][W-1] = 0 print(ans) for row in grid: print(' '.join(map(str, row)))