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