题目描述
给你一个包含n个指令的程序,最开始x的值为0。接下来,每一个指令都在这两种类型之间:
−:x减一;
+:x加一。
我们设F(S)表示执行当前操作序列过程中出现过的不同的数的数量(包括开始时的0)。
现在有m组询问,每次询问给定一段区间[l,r],你需要回答忽略这段操作序列后,求整个序列的F值。
输入格式
第一行输入两个整数n,m,表示指令的个数和询问的个数。
第二行一个仅包含+和−的长度为n的字符串,表示指令串。
接下来m行,每行两个整数l,r,表示一组询问。
输出格式
对于每个询问输出一行一个整数,表示忽略这段操作序列后,执行当前操作序列过程中出现过的不同的
数的数量。
样例
输入样例
8 4
-+--+--+
1 8
2 8
2 5
1 1
输出样例
1
2
4
4
提示
对于50%的数据,1<=n,m<=103。
对于100%的数据,a<=n,m<=2×105,1<=l<=r<=n。