T = int(input()) for t in range(1,T+1): P, K = input().split() P, K, N, A = '+'+P+'+', int(K), len(P), 0 P = [ int(P[n] != P[n+1]) for n in range(N+1) ] for n in range(N-K+1): P[n], P[n+K], A = 0, (P[n+K]+P[n])%2, A+P[n] print('Case #{}: {}'.format(t,'IMPOSSIBLE' if sum(P) else A)) T = int(input()) for t in range(1,T+1): V, A = [0]+[int(_) for _ in input()], [0] while len(A) < len(V): A.append(max(d for d in range(A[-1],10) if A+[d]*(len(V)-len(A)) <= V)) print('Case #{}: {}'.format(t,int(''.join(str(_) for _ in A[1:])))) from collections import defaultdict as dd T = int(input()) for t in range(1,T+1): N, K = [ int(_) for _ in input().split() ] Q = dd(int,{N:1}) while K > 0: L, C = max(Q.items()) del Q[L] A, B, K = (L-1)//2, L//2, K-C if K <= 0: print('Case #{}: {} {}'.format(t,B,A)) Q[A] += C Q[B] += C