n = int(input()) u_list = [input().strip() for _ in range(n)] used = set() splits = [] possible = True for u in u_list: # Try split into S (1 char) and T (2 chars) s1 = u[0] t1 = u[1:] if s1 not in used and t1 not in used: used.add(s1) used.add(t1) splits.append((s1, t1)) else: # Try split into S (2 chars) and T (1 char) s2 = u[:2] t2 = u[2] if s2 not in used and t2 not in used: used.add(s2) used.add(t2) splits.append((s2, t2)) else: possible = False break if possible: for s, t in splits: print(f"{s} {t}") else: print("Impossible")