#include <bits/stdc++.h>
using namespace std;
int main() {
int tc;
cin >> tc;
while (tc--) {
int n;
cin >> n;
string s;
cin >> s;
int cA = 0, cB = 0;
for (char c : s) {
if (c == 'a') cA++;
else cB++;
}
int d = cB - cA;
if (d == 0) {
cout << 0 << "\n";
continue;
}
vector<int> a(n);
for (int i = 0; i < n; i++) {
a[i] = (s[i] == 'a') ? -1 : 1;
}
int pref = 0;
int ans = INT_MAX;
unordered_map<int, int> mp;
mp[pref] = -1;
for (int i = 0; i < n; i++) {
pref += a[i];
int complement = pref - d;
if (mp.find(complement) != mp.end()) {
ans = min(ans, i - mp[complement]);
}
mp[pref] = i;
}
if (ans == n || ans == INT_MAX)
cout << -1 << "\n";
else
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCiAgICBpbnQgdGM7CiAgICBjaW4gPj4gdGM7CgogICAgd2hpbGUgKHRjLS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBzdHJpbmcgczsKICAgICAgICBjaW4gPj4gczsKCiAgICAgICAgaW50IGNBID0gMCwgY0IgPSAwOwogICAgICAgIGZvciAoY2hhciBjIDogcykgewogICAgICAgICAgICBpZiAoYyA9PSAnYScpIGNBKys7CiAgICAgICAgICAgIGVsc2UgY0IrKzsKICAgICAgICB9CgogICAgICAgIGludCBkID0gY0IgLSBjQTsKCiAgICAgICAgaWYgKGQgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8IDAgPDwgIlxuIjsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICB2ZWN0b3I8aW50PiBhKG4pOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGFbaV0gPSAoc1tpXSA9PSAnYScpID8gLTEgOiAxOwogICAgICAgIH0KCiAgICAgICAgaW50IHByZWYgPSAwOwogICAgICAgIGludCBhbnMgPSBJTlRfTUFYOwogICAgICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IG1wOwogICAgICAgIG1wW3ByZWZdID0gLTE7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIHByZWYgKz0gYVtpXTsKICAgICAgICAgICAgaW50IGNvbXBsZW1lbnQgPSBwcmVmIC0gZDsKCiAgICAgICAgICAgIGlmIChtcC5maW5kKGNvbXBsZW1lbnQpICE9IG1wLmVuZCgpKSB7CiAgICAgICAgICAgICAgICBhbnMgPSBtaW4oYW5zLCBpIC0gbXBbY29tcGxlbWVudF0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBtcFtwcmVmXSA9IGk7CiAgICAgICAgfQoKICAgICAgICBpZiAoYW5zID09IG4gfHwgYW5zID09IElOVF9NQVgpCiAgICAgICAgICAgIGNvdXQgPDwgLTEgPDwgIlxuIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K