import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
{
// your code goes here
Scanner sc
= new Scanner
(System.
in); int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
int ans=solve(st);
}
sc.close();
}
public static int solve
(String str
){ int n=str.length();
int ta=0,tb=0;
for(int i=0;i<n;i++){
if(str.charAt(i)=='a'){
ta++;
}
if(str.charAt(i)=='b') {
tb++;
}
}
if (ta == tb) return 0;
if (ta == 0 || tb == 0) return -1;
int imbalanceFactor = ta-tb;
Map
<Integer, Integer
> map
= new HashMap
<>();
int prefix = 0;
map.put(0, -1);
for (int i = 0; i < n; i++) {
if(str.charAt(i)=='a'){
prefix+=1;
}else{
prefix-=1;
}
if (map.containsKey(prefix - imbalanceFactor)){
minLen
= Math.
min(minLen, i
- map.
get(prefix
- imbalanceFactor
)); }
if(!map.containsKey(prefix)){
map.put(prefix, i);
}
}
if (minLen
== Integer.
MAX_VALUE) return -1; if (minLen == n) return -1;
return minLen;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IHQgPSBzYy5uZXh0SW50KCk7CgkJd2hpbGUgKHQtLSA+IDApIHsKCQkgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7CgkJICAgIFN0cmluZyBzdCA9IHNjLm5leHQoKTsKCQkgICAgCgkJICAgIGludCBhbnM9c29sdmUoc3QpOwoJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oYW5zKTsKCQl9CgkJc2MuY2xvc2UoKTsKCX0KCQoJcHVibGljIHN0YXRpYyBpbnQgc29sdmUoU3RyaW5nIHN0cil7CgkgICAgaW50IG49c3RyLmxlbmd0aCgpOwoJICAgIGludCB0YT0wLHRiPTA7CgkgICAgCgkgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CgkgICAgICAgIGlmKHN0ci5jaGFyQXQoaSk9PSdhJyl7CgkgICAgICAgICAgICB0YSsrOwoJICAgICAgICB9CgkgICAgICAgIGlmKHN0ci5jaGFyQXQoaSk9PSdiJykgewoJICAgICAgICAgICAgdGIrKzsKCSAgICAgICAgfQoJICAgIH0KCSAgICBpZiAodGEgPT0gdGIpIHJldHVybiAwOwogICAgICAgIGlmICh0YSA9PSAwIHx8IHRiID09IDApIHJldHVybiAtMTsKICAgICAgICAKCSAgICBpbnQgaW1iYWxhbmNlRmFjdG9yID0gdGEtdGI7CgkgICAgTWFwPEludGVnZXIsIEludGVnZXI+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKCiAgICAgICAgaW50IHByZWZpeCA9IDA7CiAgICAgICAgaW50IG1pbkxlbiA9IEludGVnZXIuTUFYX1ZBTFVFOwoKICAgICAgICBtYXAucHV0KDAsIC0xKTsgCgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGlmKHN0ci5jaGFyQXQoaSk9PSdhJyl7CiAgICAgICAgICAgICAgICBwcmVmaXgrPTE7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgcHJlZml4LT0xOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAobWFwLmNvbnRhaW5zS2V5KHByZWZpeCAtIGltYmFsYW5jZUZhY3RvcikpewogICAgICAgICAgICAgICAgbWluTGVuID0gTWF0aC5taW4obWluTGVuLCBpIC0gbWFwLmdldChwcmVmaXggLSBpbWJhbGFuY2VGYWN0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZighbWFwLmNvbnRhaW5zS2V5KHByZWZpeCkpewogICAgICAgICAgICAgICAgbWFwLnB1dChwcmVmaXgsIGkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIH0KCiAgICAgICAgaWYgKG1pbkxlbiA9PSBJbnRlZ2VyLk1BWF9WQUxVRSkgcmV0dXJuIC0xOwogICAgICAgIGlmIChtaW5MZW4gPT0gbikgcmV0dXJuIC0xOyAKICAgICAgICByZXR1cm4gbWluTGVuOwoJICAgIAoJfQp9Cg==