#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define mod 1000000007
#define pb push_back
#define ff first
#define ss second
#define mp make_pair
#include<stdio.h>
#define ioS ios::sync_with_stdio(false);
#include<iostream>
using namespace std;
ll int power(ll int a,ll int b)
{
if(b==0)
return 1;
else
return a*power(a,b-1);
}
bool sortbya( int l, int r)
{
return(r<l);
}
int main()
{
int l;
cin>>l;
string a;
cin>>a;
int posr[l];
int posl[l];
for(int i=0;i<l;i++)
{
int fl=0;
for(int j=i+1;j<l;j++)
{
if(a[j]==a[i])
{
posr[i]=j;
fl=1;
break;
}
}
if(fl==0)
{
posr[i]=-1;
}
}
for(int i=l-1;i>=0;i--)
{
int fl=0;
for(int j=i-1;j>=0;j--)
{
if(a[j]==a[i])
{
posl[i]=j;
fl=1;
break;
}
}
if(fl==0)
{
posl[i]=-1;
}
}
/* for(int i=0;i<l;i++)
cout<<posr[i]<<' ';
cout<<endl;
for(int i=0;i<l;i++)
cout<<posl[i]<<' ';
cout<<endl;
*/
int lef=0,rig=l-1;
int o=0;
while(posr[o]!=-1)
{
lef++;
o++;
}
o=l-1;
while(posl[o]>lef)
{
rig--;
o--;
if(posl[o]==-1)
break;
}
//cout<<lef<<' '<<rig<<endl;
//cout<<rig-lef+1<<endl;
int lef2=0,rig2=l-1;
o=l-1;
while(posl[o]!=-1)
{
rig2--;
o--;
}
o=0;
while(posr[o]<rig2)
{
if(posr[o]==-1)
break;
lef2++;
o++;
}
//cout<<lef2<<' '<<rig2<<endl;
//cout<<rig2-lef2+1<<endl;
cout<<min(rig-lef+1,rig2-lef2+1)<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZmIGZpcnN0CiNkZWZpbmUgc3Mgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNpbmNsdWRlPHN0ZGlvLmg+CiNkZWZpbmUgaW9TIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKI2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBpbnQgcG93ZXIobGwgaW50IGEsbGwgaW50IGIpCnsKCWlmKGI9PTApCglyZXR1cm4gMTsKCWVsc2UKCXJldHVybiBhKnBvd2VyKGEsYi0xKTsKfQpib29sIHNvcnRieWEoIGludCBsLCBpbnQgcikKewoJcmV0dXJuKHI8bCk7Cn0KCmludCBtYWluKCkKewkKCWludCBsOwoJY2luPj5sOwoJc3RyaW5nIGE7CgljaW4+PmE7CglpbnQgcG9zcltsXTsKCQlpbnQgcG9zbFtsXTsKCQoJZm9yKGludCBpPTA7aTxsO2krKykKCXsJCQoJCWludCBmbD0wOwoJCWZvcihpbnQgaj1pKzE7ajxsO2orKykKCQl7CgkJCWlmKGFbal09PWFbaV0pCgkJCXsKCQkJCXBvc3JbaV09ajsKCQkJCWZsPTE7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlpZihmbD09MCkKCQl7CgkJCXBvc3JbaV09LTE7CgkJfQoJfQoJCglmb3IoaW50IGk9bC0xO2k+PTA7aS0tKQoJewoJCWludCBmbD0wOwoJCWZvcihpbnQgaj1pLTE7aj49MDtqLS0pCgkJewoJCQlpZihhW2pdPT1hW2ldKQoJCQl7CgkJCQlwb3NsW2ldPWo7CgkJCQlmbD0xOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJaWYoZmw9PTApCgkJewoJCQlwb3NsW2ldPS0xOwoJCX0KCX0KCQoJCgkvKglmb3IoaW50IGk9MDtpPGw7aSsrKQoJY291dDw8cG9zcltpXTw8JyAnOwoJY291dDw8ZW5kbDsKCQoJZm9yKGludCBpPTA7aTxsO2krKykKCWNvdXQ8PHBvc2xbaV08PCcgJzsKCWNvdXQ8PGVuZGw7CgkqLwoJaW50IGxlZj0wLHJpZz1sLTE7CglpbnQgbz0wOwoJd2hpbGUocG9zcltvXSE9LTEpCgl7CgkJbGVmKys7CgkJbysrOwoJfQoJbz1sLTE7Cgl3aGlsZShwb3NsW29dPmxlZikKCXsKCQlyaWctLTsKCQlvLS07CgkJaWYocG9zbFtvXT09LTEpCgkJYnJlYWs7Cgl9CgkvL2NvdXQ8PGxlZjw8JyAnPDxyaWc8PGVuZGw7CgkvL2NvdXQ8PHJpZy1sZWYrMTw8ZW5kbDsKCQoJCglpbnQgbGVmMj0wLHJpZzI9bC0xOwoJbz1sLTE7Cgl3aGlsZShwb3NsW29dIT0tMSkKCXsKCQlyaWcyLS07CgkJby0tOwkJCgl9CglvPTA7Cgl3aGlsZShwb3NyW29dPHJpZzIpCgl7CgkJaWYocG9zcltvXT09LTEpCgkJYnJlYWs7CgkJbGVmMisrOwoJCW8rKzsKCX0KCS8vY291dDw8bGVmMjw8JyAnPDxyaWcyPDxlbmRsOwoJLy9jb3V0PDxyaWcyLWxlZjIrMTw8ZW5kbDsKCQoJY291dDw8bWluKHJpZy1sZWYrMSxyaWcyLWxlZjIrMSk8PGVuZGw7CglyZXR1cm4gMDsKfQoK