def rearrange(left, si): cnt = [0] * 26 for ci in si: cnt[ord(ci) - ord('A')] += 1 back = False ll = len(left) ls = len(si) res = [] for i in range(ll): if i == ls: back = True break li = ord(left[i]) - ord('A') if cnt[li] >= 1: res.append(li) cnt[li] -= 1 continue for alp in range(li+1,26): if cnt[alp] >= 1: res.append(alp) cnt[alp] -= 1 break else: back = True break if back: while len(res): last = res.pop() cnt[last] += 1 for alp in range(last+1,26): if cnt[alp] >= 1: res.append(alp) cnt[alp] -= 1 break else: continue break else: return '' for alp in range(26): for _ in range(cnt[alp]): res.append(alp) res = [chr(ord('A') + x) for x in res] res = ''.join(res) return res def solve_a(p,s): ans = [] left = '' for i in range(p): res = rearrange(left, s[i]) if res == '': return [] ans.append(res) left = res return ans def solve(p,s): if p > 3: return [] l = len(s) if p == 2: for i in range(1,l): s1 = s[:i] s2 = s[i:] res = solve_a(p, [s1,s2]) if not res: return [s1,s2] return [] for i in range(1,l-1): s1 = s[:i] for j in range(i+1,l): s2 = s[i:j] s3 = s[j:] res = solve_a(p, [s1,s2,s3]) if not res: return [s1,s2,s3] return [] # import sys # import os # f = open('./input.txt', 'r') # sys.stdin = f t = int(input()) for i in range(1,t+1): p,s = input().split() p = int(p) ans = solve(p, s) if ans: print(f'Case #{i}: POSSIBLE') print(*ans) else: print(f'Case #{i}: IMPOSSIBLE')