#include <iostream>
#include <string>
#include <set>
#include <map>
using namespace std;
string s;
set<char> st;
multiset<char> mst;
map<char,int> cnt;
void f(int sz,int n)
{
int l = 0,r = 0,res = n + 1;
for(;;)
{
while (cnt.size() < sz && r < n) {
cnt[s[r ++]] ++;
}
if (cnt.size() < sz) {
break;
}
res = min(res,r - l);
if (cnt[s[l]] == 1) {
cnt.erase(cnt.find(s[l]));
}
else cnt[s[l]] --;
l ++;
}
if (res > n) {
res = -1;
}
cout << res << endl;
}
int main()
{
int n;
cin >> n >> s;
for (int i = 0; i < s.size(); i ++) {
st.insert(s[i]);
}
f(st.size(),n);
return 0;
}