#5253. [2018多省省队联测]制胡窜

内存限制:512 MiB 时间限制:100 Sec

题目描述

对于一个字符串S,我们定义|S|表示S的长度。
接着,我们定义Si表示S中第i个字符,SL,R表示由S中从左往右数,第L个字符到第R个字符依次连接形成的字符串。
特别的,如果L>R,或者L不属于[1,∣S∣],或者R不属于[1,∣S∣]我们可以认为SL,R为空串。
给定一个长度为n的仅由数字构成的字符串S,
现在有q次询问,第k次询问会给出S的一个字符串Sl,r,请你求出有多少对(i,j),满足1<=i<j<=n,i+1<j,
且Sl,r出现在Si+1,J-1或Sj,n

输入格式

输入的第一行包含两个整数n,q。
第二行包含一个长度为n的仅由数字构成的字符串S。
接下来q行,每行两个正整数l和r,表示此次询问的子串是Sl,r
1<=N<=10%5,1<=Q<=3*10^5,1<=L<=R<=N

输出格式

对于每个询问,输出一个整数表示合法的数对个数。

样例

样例输入


			
5 2
00100
1 2
1 3

样例输出


			
5
1

数据范围与提示