Description
对于一个字符串 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 出现在 S1,i 中或 Si+1,j−1 中或 Sj,n 中。
输入的第一行包含两个整数 n,q。
第二行包含一个长度为 n 的仅由数字构成的字符串 S。
接下来 q 行,每行两个正整数 l 和 r,表示此次询问的子串是 Sl,r。
对于每个询问,输出一个整数表示合法的数对个数。
Sample
样例 1 输入
5 2
00100
1 2
1 3
样例 1 输出
5
1
Hint
| 测试点 | n | q | 其它约定 |
| :-: | :-: | :-: | :-: |
| 1 | =50 | =100 | 无 |
| 2∼3 | =300 | =300 | 无 |
| 4∼5 | =2000 | =3000 | 无 |
| 6∼9 | =100000 | =100000 | ∑∣Sl,r∣≤106 |
| 10∼12 | =30000 | =50000 | 无 |
| 13 | =100000 | =100000 | S 中只有 0 |
| 14∼20 | =100000 | =300000 | 无 |
对于所有测试数据,1≤n≤105,1≤q≤3⋅105,1≤l≤r≤n。