#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int test_cases;
if (!(cin >> test_cases)) return 0;
while (test_cases--) {
int length;
string input_string;
cin >> length >> input_string;
char dominant_char = input_string[0];
int dominant_count = 0;
for (char ch : input_string) {
if (ch == dominant_char) {
dominant_count++;
}
}
int other_count = length - dominant_count;
int balance_target = dominant_count - other_count;
if (balance_target == 0) {
cout << 0 << '\n';
continue;
}
vector<int> prefix_balance(length + 1, 0);
for (int j = 0; j < length; ++j) {
prefix_balance[j + 1] = prefix_balance[j] + (input_string[j] == dominant_char ? 1 : -1);
}
unordered_map<int, int> last_seen_balance;
int min_removal = length + 1;
for (int j = 0; j <= length; ++j) {
int required_balance = prefix_balance[j] - balance_target;
auto finder = last_seen_balance.find(required_balance);
if (finder != last_seen_balance.end()) {
min_removal = min(min_removal, j - finder->second);
}
last_seen_balance[prefix_balance[j]] = j;
}
if (min_removal > length) {
cout << -1 << '\n';
} else {
cout << min_removal << '\n';
}
}
return 0;
}