#abc268d. [abc268_d]Unique Username

[abc268_d]Unique Username

题目描述

Takahashi 在为一个服务决定用户名时遇到了麻烦。写一个代码来帮助他。

找到一个字符串 XX,满足以下所有条件:

  • XX 是通过以下步骤得到的:
    • S1,S2,ldots,SNS_1', S_2', \\ldots,S_N'S1,S2,ldots,SNS_1, S_2, \\ldots,S_N 的一个排列。令 XXS1S_1',(11个或多个_),S2S_2',(11个或多个_),ldots\\ldots,(11个或多个_),以及 SNS_N' 的连接。
  • XX 的长度在 331616 之间,包括边界值。
  • XX 不与 MM 个字符串 T1,T2,ldots,TMT_1,T_2,\\ldots,T_M 中的任何一个重合。

如果没有满足所有条件的 XX,则输出 -1

约束条件

  • 1leqNleq81 \\leq N \\leq 8
  • 0leqMleq1050 \\leq M \\leq 10^5
  • NNMM 均为整数。
  • 1leqSileq161 \\leq |S_i| \\leq 16
  • N1+sumSileq16N-1+\\sum{|S_i|} \\leq 16
  • ineqji \\neq j 时,SineqSjS_i \\neq S_j
  • SiS_i 是由小写英文字母组成的字符串。
  • 3leqTileq163 \\leq |T_i| \\leq 16
  • ineqji \\neq j 时,TineqTjT_i \\neq T_j
  • TiT_i 是由小写英文字母和 _ 组成的字符串。

输入

从标准输入读入输入数据。

输入格式如下:

NN MM S1S_1 S2S_2 vdots\\vdots SNS_N T1T_1 T2T_2 vdots\\vdots TMT_M

输出

将结果输出到标准输出。

输出一个满足所有条件的字符串 XX。如果没有满足所有条件的 XX,则输出 -1
如果有多个解,可以输出任意一个。


示例输入 1

1 1
chokudai
chokudai

示例输出 1

-1

满足第一个和第二个条件的唯一字符串是 X=X= chokudai,但它与 T1T_1 重合。
因此,没有满足所有条件的 XX,所以应该输出 -1


示例输入 2

2 2
choku
dai
chokudai
choku_dai

示例输出 2

dai_choku

诸如 choku__dai (在 chokudai 之间有两个 _ ) 的字符串也满足所有条件。


示例输入 3

2 2
chokudai
atcoder
chokudai_atcoder
atcoder_chokudai

示例输出 3

-1

chokudai__atcoderatcoder__chokudai (在 chokudaiatcoder 之间有两个 _ ) 的长度为 1717,违反了第二个条件。


示例输入 4

4 4
ab
cd
ef
gh
hoge
fuga
____
_ab_cd_ef_gh_

示例输出 4

ab__ef___cd_gh

给定的 TiT_i 可能包含无法通过第一个条件描述的过程得到的字符串。