二战期间,德军使用一种名为“Enigma”的密码机。这个密码机使用Vigenere密码的原理进行加密,为了简化问题,我们规定加密方式如下:
我们称需要加密的信息为明文,用 M 表示;称加密后的信息为密文,用 C 表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为 k。 在本题中,密钥 k 是一个字母串,k=k1,k2,⋯,kn。当明文 M=m 1 ,m 2 ,⋯,m n时,得到的密文C=c 1 ,c 2 ,⋯,c n ,其中 c i=mi ®ki,运算®的规则如下图表示:
当明文 M 的长度大于密钥 k 的长度时,将密钥 k 重复使用。
战争初期,德军让使用密码机的士兵使用一个统一规定的密钥。虽然这个密钥会定期更换,但是德军高层觉得这样仍然不安全,于是要求每次发送信息使用不同的密钥。在发送真正的密文前,先用统一密钥将自己接下来要使用的密钥加密,然后发出,这样接收方用统一密钥解密后,就获得了接下来要使用的密钥。
为了减少发送时的错误,德军还要求将密钥重复两次,然后加密发出。例如:士兵A准备使用XXYZ作为他的密钥,那么他就要将XXYZ重复两次,将XXYZXXYZ加密后发出。如果统一密钥是ABC,那么他发出的密文是XYAZYZYA。
正是这个“重复两次”,让盟军抓到了漏洞,成为破解Enigma的又一个关键突破口。假设你是一个盟军破译人员,目前截获了n条密文,已知:
(1)所有密文长度都是偶数,且原文的前半和后半完全一样。
(2)所有密文都是用一个统一的秘钥加密的,且这个秘钥是一个只含大写字母的3位字符串。 你的任务是,找到所有可能的统一秘钥,并输出其中字典序最小的那个。
【输入格式】 第1行,1个正整数 n。接下来 n 行,每行一个字符串。
【输出格式】
输出所有可能的统一秘钥中,字典序最小的那个。
【说明提示】
样例1说明:如果这3条密文是用秘钥ABC加密得来的,那么它们的原文是: SPTSPT, XXYZXXZY, HELLOHELLO。 都符合前半和后半相同的条件。
【数据范围】
1≤n≤500
每个字符串只含大写英文字母,长度一定是偶数且不超过100