H, W = map(int, input().split()) max_ans = 0 grid = [[0] * W for _ in range(H)] if H % 2 == 0 and W % 2 == 0: max_ans = H * W for i in range(H): for j in range(W): grid[i][j] = 1 elif H % 2 == 0 and W % 2 == 1: max_ans = H * (W - 1) for i in range(H): for j in range(W - 1): grid[i][j] = 1 elif H % 2 == 1 and W % 2 == 0: max_ans = (H - 1) * W for i in range(H - 1): for j in range(W): grid[i][j] = 1 else: max_ans = H * W - 1 for i in range(H): for j in range(W): grid[i][j] = 1 grid[H-1][W-1] = 0 print(max_ans) for row in grid: print(' '.join(map(str, row)))