#include<bits/stdc++.h>
using namespace std;
int t,n,cnt,flag,maxn,maxm,maxx,ff;
string s;
struct aaa{
int id,sum,l,r;
}a[100050];
bool cmp(aaa aa,aaa bb){
return aa.sum>bb.sum;
}
int main(){
cin>>t;
while(t--){
cin>>n>>s;
cnt=0;
ff=0;
flag=0;
maxn=0;
maxm=0;
maxx=0;
for(register int i=0;i<=n-1;i++){
if(s[i]=='T'){
ff=1;
}
if(s[i]=='T'&&flag){
if(i==n-1){
a[cnt].r=i;
a[cnt].sum=i+1-a[cnt].l;
maxn=max(maxn,a[cnt].sum);
}
continue;
}
if(s[i]=='T'&&s[i+1]=='T'&&!flag){
cnt++;
a[cnt].id=cnt;
a[cnt].l=i;
if(i==n-2){
a[cnt].r=n-1;
a[cnt].sum=2;
maxn=max(maxn,a[cnt].sum);
}
i++;
flag=1;
}else{
if(flag){
a[cnt].r=i-1;
a[cnt].sum=i-a[cnt].l;
maxn=max(maxn,a[cnt].sum);
}
flag=0;
}
}
if(maxn==0&&ff){
printf("1\n");
continue;
}
if(!ff){
printf("0\n");
continue;
}
if(cnt==1){
printf("%d\n",maxn);
continue;
}
sort(a+1,a+cnt+1,cmp);
register int ll,rr;
for(register int i=1;i<=n;i++){
if(a[i].sum<=maxn-1){
if(maxx==1){
printf("%d\n",maxn+1);
break;
}
}
if(a[i].sum==maxn){
maxm=0;
ll=a[i].l,rr=a[i].r;
while(ll-2>=0){
if(s[ll-1]=='B'&&s[ll-2]=='T'){
ll-=2;
}else if(s[ll-1]=='T'&&s[ll-2]=='B'){
maxm++;
break;
}else{
break;
}
}
while(rr+2<n){
if(s[rr+1]=='B'&&s[rr+2]=='T'){
rr+=2;
}else if(s[rr+1]=='T'&&s[rr+2]=='B'){
maxm++;
break;
}else{
break;
}
}
maxx=max(maxx,maxm);
if(maxx==2){
printf("%d\n",maxn+2);
break;
}
}else if(a[i].sum==maxn-1){
maxm=0;
ll=a[i].l,rr=a[i].r;
while(ll-2>=0){
if(s[ll-1]=='B'&&s[ll-2]=='T'){
ll-=2;
}else if(s[ll-1]=='T'&&s[ll-2]=='B'){
maxm++;
break;
}else{
break;
}
}
while(rr+2<n){
if(s[rr+1]=='B'&&s[rr+2]=='T'){
rr+=2;
}else if(s[rr+1]=='T'&&s[rr+2]=='B'){
maxm++;
break;
}else{
break;
}
}
if(maxm==2){
printf("%d\n",maxn+1);
break;
}
}else if(a[i].sum<maxn-1){
printf("%d\n",maxn);
break;
}
}
}
return 0;
}