#XMOJ10188. 找到S+T

找到S+T

说明

时间限制:1 Sec 内存限制:256 MB 输入文件st.in 输出文件st.out

对于字符串 $S$ 和 $T$,将它们连接后的结果用 $S+T$ 表示。

给定 $N$ 个长度为 $3$ 的字符串 $U_1, U_2, \dots, U_N$,请为每个 $1 \leq i \leq N$ 找到满足 $S_i + T_i = U_i$ 的非空字符串 $S_i$ 和 $T_i$,且所有 $2N$ 个字符串互不相同。若无法找到满足条件的解,则输出 Impossible。

输入格式

第 $1$ 行:整数 $N$。

第 $2$ 行至第 $N+1$ 行:每个字符串 $U_i$(长度为 $3$,仅包含小写字母 $a-z$ 或大写字母 $A-Z$)。  


输出格式

若无解:输出 Impossible。

若有解:按顺序输出 $N$ 行,每行包含 $S_i$ 和 $T_i$(用空格分隔)。所有 $2N$ 个字符串必须互不相同。如果有多个解,任意输出其中的一个即可。

样例

样例 1

3
abc
abd
cbc

a bc
ab d
cb c

样例 2

2
aaa
aaa

Impossible

样例 3

2
aaa
AAA

a aa
A AA

样例 4

10
kgb
cih
blm
kee
lgj
dcl
bam
ibc
mca
lkf

k gb
c ih
b lm
ke e
l gj
d cl
ba m
i bc
mc a
lk f

数据范围

对于 20% 的数据,$N \le 10$。

对于 36% 的数据,$N \le 30$。

对于 76% 的数据,$N \le 100$。

对于 100% 的数据,$1 \le N \le 10^5$。