import fileinput import sys sys.setrecursionlimit(10**6) lines = fileinput.input() def read(conv=str, sep=None): global lines line = lines.readline().strip() if sep is None: return conv(line) else: return [conv(token) for token in line.split(sep)] def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) def encode(D, s): e = [None] * len(s) for i, c in enumerate(s): e[i] = D[ord(c) - ord('A')] return ''.join(e) def solve(M, R, N, X): m = 0 i = 0 n = 0 while m < M: if i == N: # we need more lights, but we have no more return None while i+1 < N and m + R >= X[i+1]: i += 1 if m + R < X[i]: # we don't have light covering this space return None m = X[i] + R i += 1 n += 1 return n T = read(int) for t in range(T): M, R, N = read(int, ' ') X = read(int, ' ') sol = solve(M, R, N, X) print("Case #{0}: {1}".format(t + 1, "IMPOSSIBLE" if sol is None else sol))