#include<bits/stdc++.h>
using namespace std;
char s[300000];
int v[300000],v2[300000],lx[300000],ln[300000],rx[300000],rn[300000];
int main(){
	int t;
	scanf("%d",&t);
	while (t--){
		int n,m;
		scanf("%d%d%s",&n,&m,s+1);
		lx[0]=ln[0]=rx[n]=rn[n]=v[0]=v2[n]=0;
		int x=0;
		for (int i=1;i<=n;i++){
			if (s[i]=='+') x++;
			else x--;
			v[i]=x;
			lx[i]=max(lx[i-1],x);
			ln[i]=min(ln[i-1],x);
		}
		x=0;
		for (int i=n;i>=1;i--){
			if (s[i]=='+') x--;
			else x++;
			v2[i-1]=x;
			rx[i-1]=max(rx[i],x);
			rn[i-1]=min(rn[i],x);
		}
		for (int i=1;i<=m;i++){
			int l,r;
			scanf("%d%d",&l,&r);
			printf("%d\n",max(lx[l-1],v[l-1]-v2[r]+rx[r])-min(ln[l-1],v[l-1]-v2[r]+rn[r])+1);
		}
	}
	return 0;
}