#jag2017summerday1f. [jag2017summer_day1_f]極小部分列

[jag2017summer_day1_f]極小部分列

问题

给定字符串 SSQQ 个查询。

对于第 ii 个查询,给定字符串 TiT_i,请找出包含 TiT_i 作为子序列的 SS 的最左边的最小子串。

这里字符串 ss 是最小的意思是,ss 是包含 TiT_i 作为子序列的所有子串中最短的。

约束条件

  • 1S1051≤|S|≤10^5
  • 1Q1051≤Q≤10^5
  • 1Ti1≤|T_i|
  • Ti|T_i| 的总和不超过 10510^5
  • S,TiS, T_i 只包含小写字母

输入

输入从标准输入中给出,具体格式如下:

SS

QQ

T1T_1

T2T_2

\cdots

TQT_Q

输出

如果第 ii 个查询的答案是 SS 的子串从第 ll 个字符到第 rr 个字符组成,将 llrr 在第 ii 行以空格分隔输出。如果 SS 不包含 TiT_i 作为子序列,则在第 ii 行输出 -1


输入示例 1

aaxbab
12
ab
da
subsequence
aaxbab
a
aa
aaa
aaaa
ba
x
xb
xb

输出示例 1

2 4
-1
-1
1 6
1 1
1 2
1 5
-1
4 5
3 3
3 4
3 4

以下为对第一个查询的解释:

答案是子串 axb,从第二个字符到第四个字符。

另外,子串 ab 也是包含 T1T_1 作为子序列的最小子串,但是 axb 在左边,因此不是答案。

另外,aaxb 不是最小子串。因为它包含一个子串 axb,它是包含 T1T_1 作为子序列的子串。