#yukicoder 2819 Binary Binary-Operator #入力(X, Y)とPのパターン、合計2^6通りを区別できるような列を考えたい #隠された演算子2^4通りを定義 P[i][x][y]: i番目のx * yの結果 P = [[[0] * 2 for _ in range(2)] for i in range(1 << 4)] has_bit = lambda S, x: S >> x & 1 for S in range(1 << 4): for i, (x, y) in enumerate([(0, 0), (0, 1), (1, 0), (1, 1)]): if has_bit(S, i): P[S][x][y] = 1 #演算子番号iと演算列Lを渡す。演算結果を返す def calc(i, L): ans = L[0] for x in range(1, len(L)): ans = P[i][ans][L[x]] return ans #X, Yを与える。すべての演算子でX * Yの結果が一致するような列L: [X, Y, ・・・]を探す def find(X, Y): for N in range(3, 16): L = [X, Y] + [0] * (N - 2) for S in range(1 << (N - 2)): for x in range(N - 2): if has_bit(S, x): L[2 + x] = 1 for i in range(1 << 4): ans1 = P[i][X][Y] ans2 = calc(i, L) if ans1 != ans2: break else: return L #驚いたが実行してみる X, Y = map(int, input().split()) L = find(X, Y) print(len(L)) print(*L) exit(print(input()))