小S拿了一条带子(一条薄布条)给它上色。正式地说,这个带子有n个单元格,每个单元格都被涂成26种颜色中的一种,所以我们可以用英文字母表中的一个小写字母来表示每种颜色。
小S决定从他喜欢的带子的某个部分[l,r](1≤l≤r≤n)上取一些段[l,r],然后从带子上剪下来。因此,他将创建一个新的带子,可以表示为字符串t=slsl+1…sr。
在那之后,小S会玩下面的游戏:他把带子t切成一些新的带子,并计算其中不同带子的数量。在形式上,小S选择1≤k≤|t|索引 1≤i1<i2<…<ik<=|t|,把t切成k个字符串 t1t2t3…..ti1,ti1+1……ti2,……,tik-1+1……tik 并计算其中不同带子的数目,他想知道在至少一个频带重复至少两次的约束下,他能得到的不同频带的最小可能数量。游戏的结果是这个数字。如果这样切t是不可能的,那么结果就是-1。
不幸的是,小S还没有决定他喜欢哪一段,但他有q段供他选择,分别是 [l1,r1], [l2,r2], ..., [lq,rq]。你的任务是计算每个游戏的结果。