「JZOI-1」拜神

题目背景

新年快到了,小僖和爸爸妈妈上山拜神,祈求新一年的好气运。

题目描述

小僖要拜的神一共有 $n$ 个,小僖对每个神的信仰可以用一个小写字母表示,信仰排在一起形成了一个从标号 $1$ 开始的字符串 $s$。 小僖需要祈祷词来拜神,定义一段祈祷词为一个长度大于零的 $s$ 的连续子串,祈祷词的长度为这个子串的长度。由于拜神只需要小僖有着一定的认真度,所以一种祈祷词只要出现两次就可以被称之为有效的。 **注意:只要子串出现的位置开头不同,中间有重复部分也没有问题**。 但是由于还有爸爸妈妈的存在,小僖的祈祷词有时会被干扰而打断,所以只有区间 $[l,r]$ 的字符串(即 $s[l\dots r]$)有效。为了未雨绸缪,小僖将会对可能的情况进行精心准备。 他会给出 $q$ 次询问,每次询问将给定 $l,r$,询问区间 $[l,r]$ 的最长的有效祈祷词的长度。

输入输出格式

输入格式


第一行输入两个正整数 $n,q$。 第二行输入一个由小写字符构成的字符串 $s$。 接下来有 $q$ 行,每行输入两个数 $l,r$。

输出格式


输出 $q$ 行,每行输出一个非负整数,代表最长的有效祈祷词的长度,若无有效祈祷词,则输出 $0$。

输入输出样例

输入样例 #1

10 5
cdabababdc
3 7
2 8
5 10
6 10
1 4

输出样例 #1

3
4
2
1
0

说明

#### 样例解释: 对于第一次询问:区间内的字符串为 $\texttt{ababa}$,其中子串 $\texttt{aba}$ 出现了两次,长度为 $3$ 。 对于第二次询问:区间内的字符串为 $\texttt{dababab}$,其中子串 $\texttt{abab}$ 出现了两次,长度为 $4$ 。 对于第三次询问:区间内的字符串为 $\texttt{ababdc}$,其中子串 $\texttt{ab}$ 出现了两次,长度为 $2$ 。 对于第四次询问:区间内的字符串为 $\texttt{babdc}$,其中子串 $\texttt{b}$ 出现了两次,长度为 $1$ 。 对于第五次询问:区间内的字符串为 $\texttt{cdab}$,无出现至少两次的子串,答案为 $0$ 。 #### 数据范围: 对于 $5\%$ 的数据,$n,q\le50$。 对于 $15\%$ 的数据,$n,q\le200$。 对于 $30\%$ 的数据,$n,q\le2\times10^3$。 对于 $40\%$ 的数据,$n,q\le5\times10^3$。 对于 $65\%$ 的数据,$n,q\le2\times 10^4$。 对于另外 $5\%$ 的数据,满足所有的字符都相等。 对于 $100\%$ 的数据,$1 \le n\le5\times10^4$,$1 \le q \le 10^5$。