#include <climits>
#include <iostream>
#include <vector>
using namespace std;

int main() {

    int num;
    cin >> num;
    while (num--) {
        int stonenum;
        cin >> stonenum;
        string str;
        cin >> str;
        vector<vector<int>> store(26);
        for (int i = 0; i < str.size(); i++) {
            store[str[i] - 'a'].push_back(i);
        }

        // 不能破坏的情况
        int breakflag = 0;
        for (int i = 0; i < 26; i++) {
            if (store[i].size() <= 1) continue;
            else {
                breakflag = 1;
            }
        }
        if (breakflag == 0) {
            cout << -1 << endl;
            continue;
        }

        //  能破坏的情况
        int mindis = INT_MAX;
        for (int i = 0; i < 26; i++) {
            if (store[i].size() <= 1) continue;

            // 比较前后大小
            for (int j = 1; j < store[i].size(); j++) {
                int prediff = store[i][j] - store[i][j - 1] - 1;
                int backdiff = stonenum - store[i][j] + store[i][0] - 1;

                mindis = min(mindis, min(prediff, backdiff));
            }
        }

        cout << mindis << endl;
    }
}