// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#define int long long
using namespace std;
void solve(){
string s;
int n;
cin>>n;
cin>>s;
// 因为是环装 所以s*2
s=s+s;
// 用来存储 每个字母上次出现的位置
vector<int>pos(30,-1);
int ans=n-1;
// 初始给设为长度减一
for(int i=0;i<s.size();i++){
// 取最小
if(pos[s[i]-'a']!=-1)ans=min(ans,i-pos[s[i]-'a']-1);
pos[s[i]-'a']=i;
}
// 如果没变 输出-1
if(ans>=n-1)cout<<"-1"<<"\n";
else cout<<ans<<"\n";
}
signed main(){
int T=1;
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>T; // T 组数据
while(T--){
solve();
}
return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动