#abc268d. [abc268_d]Unique Username

[abc268_d]Unique Username

問題文

高橋君はあるサービスで使うユーザー名を決めるのに困っています。彼を助けるプログラムを書いてください。

以下の条件をすべて満たす文字列 XX11 つ求めてください。

  • XX は次の手順で得られる文字列である。
    • NN 個の文字列 S1,S2,ldots,SNS_1,S_2,\\ldots,S_N を好きな順番で並べたものを S1,S2,ldots,SNS_1', S_2', \\ldots,S_N' とする。そして、S1S_1'、( 11 個以上の _ )、S2S_2'、( 11 個以上の _ )、ldots\\ldots、( 11 個以上の _ )、SNS_N' をこの順番で連結したものを XX とする。
  • XX の文字数は 33 以上 1616 以下である。
  • XXMM 個の文字列 T1,T2,ldots,TMT_1,T_2,\\ldots,T_M のいずれとも一致しない。

ただし、条件をすべて満たす文字列 XX が存在しない場合は代わりに -1 と出力してください。

制約

  • 1leqNleq81 \\leq N \\leq 8
  • 0leqMleq1050 \\leq M \\leq 10^5
  • N,MN,M は整数
  • 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

出力

条件をすべて満たす文字列 XX11 つ出力せよ。ただし、条件をすべて満たす文字列 XX が存在しない場合は代わりに -1 を出力せよ。
答えが複数存在する場合、どれを出力しても良い。


入力例 1

1 1
chokudai
chokudai

出力例 1

-1

条件のうち 11 番目と 22 番目を満たす文字列は X=X= chokudai しかありませんが、これは T1T_1 と一致します。
このため、条件をすべて満たす文字列 XX が存在せず、-1 が正しい出力となります。


入力例 2

2 2
choku
dai
chokudai
choku_dai

出力例 2

dai_choku

この他に、choku__dai (chokudai の間の _22 つ) 等も条件をすべて満たします。


入力例 3

2 2
chokudai
atcoder
chokudai_atcoder
atcoder_chokudai

出力例 3

-1

chokudai__atcoderatcoder__chokudai (chokudaiatcoder の間の _22 つ)は文字数が 1717 なので 22 番目の条件を満たしません。


入力例 4

4 4
ab
cd
ef
gh
hoge
fuga
____
_ab_cd_ef_gh_

出力例 4

ab__ef___cd_gh

11 番目の条件で記述されている操作で得られないような文字列が TiT_i として与えられる場合があります。