#1487. [POI2012] A Horrible Poem

内存限制:512 MiB 时间限制:1500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: hwpvector

题目描述

给定由小写英文字母组成的字符串 SS,有 qq 个询问,每次询问给定 SS 的一个子串,求其最短整循环节。

如果字符串 AA 可以由字符串 BB 重复若干次得到,则字符串 BB 是字符串 AA 的一个整循环节(即 A=Bk,kZ+A = B^k, k\in \mathbb{Z_+})。

输入格式

第一行一个正整数 n(1n500 000)n (1\le n \le 500\ 000),表示字符串 SS 的长度。

接下来一行 nn 个小写英文字母,表示字符串 SS.

接下来一行一个正整数 q(1q2 000 000)q (1\le q \le 2\ 000\ 000),表示询问个数。

接下来 qq 行每行两个正整数 a,b(1abn)a,b (1 \le a \le b \le n),表示询问字符串 SS 从第 aa 个字母到第 bb 个字母组成的子串的最短循环节长度。

输出格式

输出 qq 行,每行一个正整数,表示询问的答案。

样例

输入样例

8
aaabcabc
3
1 3
3 8
4 8

输出样例

1
3
5