M = 10**9 def Alice(): N, Q = map(int, input().split()) A = [int(x) for x in input().split()] B = Q // N K = N V = 0 for v in A: V = V * M + v - 1 sz = [] for _ in range(K - 1): sz.append(V % B + 1) V //= B sz.reverse() sz.append(Q - sum(sz)) T = bin(V)[2:] T = "0" * (Q - len(T)) + T print(K) s = 0 for i in range(K): print(T[s : s + sz[i]]) s += sz[i] def Bob(): N, Q = map(int, input().split()) K = int(input()) S = [input() for _ in range(K)] B = Q // N V = int("".join(S), 2) for i in range(K - 1): V = V * B + len(S[i]) - 1 A = [] for _ in range(N): A.append(V % M + 1) V //= M A.reverse() print(" ".join(map(str, A))) Player = input() if Player == "Alice": Alice() else: Bob()