#abc031d. [abc031_d]語呂合わせ

[abc031_d]語呂合わせ

问题描述

日本有一种将数字与短字符串对应的发音文化。

高橋君对这个事情很感兴趣,他想从由正整数 v1v_1, v2v_2, ..., vNv_N 和对应的字符串 w1w_1, w2w_2, ..., wNw_N 构成的组合 (v1v_1, w1w_1), (v2v_2, w2w_2), ..., (vNv_N, wNw_N) 中推断出每个数字对应的字符串。

也就是说,我们要找到满足以下条件的 KK 个字符串 s1s_1, s2s_2, ..., sKs_K

  • 对于满足 1iK1≦i≦K 的任意整数 ii,有 1si31≦|s_i|≦3
  • 对于满足 1iN1≦i≦N 的任意整数 ii,将整数 viv_i 按位分解得到数字 d1d_1, d2d_2, ..., dld_l,则将字符串 sd1s_{d_1}, sd2s_{d_2}, ..., sdls_{d_l} 连接起来得到的字符串与 wiw_i 相等。

请编写一个程序输出 KK 个字符串 s1s_1, s2s_2, ..., sKs_K

输入

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

输入的格式如下所示:

KK NN

v1v_1 w1w_1

v2v_2 w2w_2

...

vNv_N wNw_N

  • 第一行包含两个整数 K(1K9)K (1≦K≦9)N(1N50)N (1≦N≦50),以空格分隔。
  • 第二行到第 NN 行包含数字和字符串对的信息。第 ii(1iN)(1≦i≦N) 包含一个整数 vi(1vi109)v_i (1≦v_i≦10^9) 和一个只包含小写字母的字符串 wi(1wi27)w_i (1≦|w_i|≦27),以空格分隔。
  • 11KK 内的任何数字都将出现在 v1v_1, v2v_2, ..., vNv_N 中的至少一个数字中。
  • 提供的输入保证至少存在满足条件的 KK 个字符串 s1s_1, s2s_2, ..., sKs_K

部分分

本问题包含部分分。

  • 如果 K3K ≤ 3 并且从 w1w_1wNw_N 的所有字符串都由 a, b, c 组成,则对于数据集 11 的正确答案将获得 4040 分。
  • 如果没有附加约束的数据集 22 得到正确答案,则将额外获得 6060 分。

输出

输出包含 KK 行。第 ii(1iK)(1≦i≦K) 包含字符串 sis_i

如果满足条件的 KK 个字符串有多个组合,则可以输出其中的任何一个组合。

在输出的末尾添加换行符。

示例

输入示例1

6 4
356 migoro
461 yoroi
2 ni
12 ini

输出示例1

i
ni
mi
yo
go
ro

在此示例中,我们可以将 s1=s_1 = is2=s_2 = nis3=s_3 = mis4=s_4 = yos5=s_5 = gos6=s_6 = ro,从而满足问题的条件。事实上,

  • 当将 v1=356v_1 = 356 按位分解时得到数字 33, 55, 66,将字符串 migoro 连接起来得到的字符串 migorow1w_1 相等。
  • 当将 v2=461v_2 = 461 按位分解时得到数字 44, 66, 11,将字符串 yoroi 连接起来得到的字符串 yoroiw2w_2 相等。
  • 当将 v3=2v_3 = 2 按位分解时得到数字 22,字符串 niw3w_3 相等。
  • 当将 v4=12v_4 = 12 按位分解时得到数字 11, 22,将字符串 ini 连接起来得到的字符串 iniw4w_4 相等。

注意,这个示例中的输入不满足数据集 11 的条件。

输入示例2

3 4
21 aaa
12 aaa
123 aaaaaa
13 aaaa

输出示例2

a
aa
aaa

输入示例3

2 3
12211 abcaaaaabcabc
2121 aaabcaaabc
222221 aaaaaaaaaaabc

输出示例3

abc
aa

输入示例4

2 1
12 abcab

输出示例4

ab
cab