#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
while(t--){
int n;
cin>>n;
string s;
cin>>s;
queue<pair<int,string>> q;
for(int i = 0;i<s.size();i++) {
pair <int, string> team ;
if(i == 0 || i%2 == 0){
team = make_pair(0,s[i]);
q.push(team); // b team
} else {
team = make_pair(1,s[i]);
q.push(team); //a team
}
}
int countA = 0;
int countB = 0;
int remA = 0;
int remB = 0;
int count =0;
bool flag = true;
while(!q.empty()){
count++;
pair <int, string> team ;
team = q.front();
q.pop();
if(team.first == 0) {
remB++;
if(team.second == "1"){
countB++;
}
} else {
remA++;
if(team.second == "1"){
countA++;
}
}
if(countB - countA > n-remA){
flag = false;
cout<<count<<endl;
break;
}
if(countA - countB > n-remB){
flag = false;
cout<<count<<endl;
break;
}
}
if(flag){
cout<<s.size()<<endl;
}
}
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJaW50IG47CgkJY2luPj5uOwoJCXN0cmluZyBzOwoJCWNpbj4+czsKCQlxdWV1ZTxwYWlyPGludCxzdHJpbmc+PiBxOwoJCQoJCWZvcihpbnQgaSA9IDA7aTxzLnNpemUoKTtpKyspIHsKCQkJcGFpciA8aW50LCBzdHJpbmc+IHRlYW0gOyAKCQkJaWYoaSA9PSAwIHx8IGklMiA9PSAwKXsKCQkJIHRlYW0gPSAgbWFrZV9wYWlyKDAsc1tpXSk7CgkJICAJIHEucHVzaCh0ZWFtKTsgLy8gYiB0ZWFtIAoJCQl9IGVsc2UgewoJCSAJIHRlYW0gPSAgbWFrZV9wYWlyKDEsc1tpXSk7CgkJCSBxLnB1c2godGVhbSk7IC8vYSB0ZWFtCgkJCX0KCQl9CgkJCgkJaW50IGNvdW50QSA9IDA7CgkJaW50IGNvdW50QiA9IDA7CgkJaW50IHJlbUEgPSAwOwoJCWludCByZW1CID0gMDsKCQlpbnQgY291bnQgPTA7CgkJYm9vbCBmbGFnID0gdHJ1ZTsKCQl3aGlsZSghcS5lbXB0eSgpKXsKCQkJY291bnQrKzsKCQkJIHBhaXIgPGludCwgc3RyaW5nPiB0ZWFtIDsgCgkJCSB0ZWFtID0gcS5mcm9udCgpOwoJCQlxLnBvcCgpOwoJCQlpZih0ZWFtLmZpcnN0ID09IDApIHsKCQkJCXJlbUIrKzsKCQkJCWlmKHRlYW0uc2Vjb25kID09ICIxIil7CgkJCQkJY291bnRCKys7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQlyZW1BKys7CgkJCQlpZih0ZWFtLnNlY29uZCA9PSAiMSIpewoJCQkJCWNvdW50QSsrOwoJCQkJfQoJCQl9CgkJCQoJCQlpZihjb3VudEIgLSBjb3VudEEgPiBuLXJlbUEpewoJCQkJZmxhZyA9ICBmYWxzZTsKCQkJCWNvdXQ8PGNvdW50PDxlbmRsOwoJCQkJYnJlYWs7CgkJCX0KCQkJCgkJCWlmKGNvdW50QSAtIGNvdW50QiA+IG4tcmVtQil7CgkJCQlmbGFnID0gIGZhbHNlOwoJCQkJY291dDw8Y291bnQ8PGVuZGw7CgkJCQlicmVhazsKCQkJfQoJCX0KCQkKCQlpZihmbGFnKXsKCQkJY291dDw8cy5zaXplKCk8PGVuZGw7CgkJfQoJCQoJfQoJCgkKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9