有 nnn 个两两互不相同的仅由小写字符构成的命令字符串 tit_iti (1≤i≤n1 \leq i \leq n1≤i≤n),你需要实现一个支持命令补全的命令行。
你的输入区是一个字符串 sss,他可以接受小写字母 ’a’-’z’\text{'a'-'z'}’a’-’z’ 和 Tab\text{Tab}Tab 键 (以 ’T’\text{'T'}’T’ 表示),Enter\text{Enter}Enter 键 (以 ’E’\text{'E'}’E’ 表示),Backspace\text{Backspace}Backspace 键 (以 ’B’\text{'B'}’B’ 表示)。规则如下所述:
当你接受小写字符 ccc,将把 ccc 追加到输入区字符串 sss 的末尾。
当你接受 Backspace\text{Backspace}Backspace 键,将尝试删除最后一个字符:
当你接受 Tab\text{Tab}Tab 键,将会对 sss 进行一次智能补全,补全规则如下:
当你接受 Enter\text{Enter}Enter 键,将会试图执行命令 sss:
给定你接受到的输入串 ppp,你需要输出每个 Enter\text{Enter}Enter 键执行的结果。
输入第一行为两个整数 nnn 和 mmm (1≤n≤105,1≤m≤5×1061 \leq n \leq 10^5, 1 \leq m \leq 5 \times 10^61≤n≤105,1≤m≤5×106),为命令字符串的个数和输入串的长度,由空格隔开。
接下来 nnn 行,每行一个仅由小写字符构成的字符串 tit_iti,为命令串。保证有 ∑i=1n∣ti∣≤106\sum_{i=1}^{n} |t_i| \leq 10^6∑i=1n∣ti∣≤106 且命令串互不相同。
最后一行为字符串 ppp (∣p∣=m|p|=m∣p∣=m),为输入串。保证 ppp 仅由 {’a’-’z’, ’T’, ’B’, ’E’}\text{\{'a'-'z', 'T', 'B', 'E'\}}{’a’-’z’, ’T’, ’B’, ’E’} 组成。
7 40 kill killall rm rmdir ifconfig ifdown ll kTBlEkTaTEiTcBdTElTExjtuTExjtuBBBBBrTdTE
1 2 6 7 -1 4
初始时,输入区字符串 s=s=s=。
输入 ’k’\text{'k'}’k’ 后,输入区字符串 s=’k’s=\text{'k'}s=’k’。
输入 ’T’\text{'T'}’T’ 后,进行智能匹配。此时 T={’kill’, ’killall’}T=\{\text{'kill', 'killall'}\}T={’kill’, ’killall’},lcp(T)=’kill’\text{lcp}(T)=\text{'kill'}lcp(T)=’kill’。故输入区字符串s=’kill’s=\text{'kill'}s=’kill’。
输入 ’B’\text{'B'}’B’ 后,输入区字符串 s=’kil’s=\text{'kil'}s=’kil’。
输入 ’l’\text{'l'}’l’ 后,输入区字符串 s=’kill’s=\text{'kill'}s=’kill’。
输入 ’E’\text{'E'}’E’ 后,因为 t1=st_1=st1=s,所以应该输出 111。