#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;
}