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