#include using namespace std; using ll=long long; using ld=double; using vll=vector; #define FOR(i,a,b) for(ll i=a;i<(ll)b;++i) #define ROF(i,a,b) for(ll i=a;i>=(ll)b;--i) #define PB push_back #define L 20 int main(){ ios::sync_with_stdio(0);cin.tie(0); map, int64_t> m; int64_t N; cin >> N; vector in(N, 0); for(int64_t i = 0; i < N; i++){ char IN; cin >> IN; in[i]= IN - 'a'; } array cur_pref; for(int64_t i = 0;i < L; i++)cur_pref[i] = 0; for(int64_t i = 0;i < N+1; i++){ m[cur_pref] = i; if(i < N){ cur_pref[in[i]] =! cur_pref[in[i]]; } } for(int64_t i = 0;i < L; i++)cur_pref[i] = 0; int64_t mx = 0; for(int64_t i = 0;i < N; i++){ mx = max(mx, m[cur_pref] - i); for(int64_t j = 0; j < L; j++){ cur_pref[j] =! cur_pref[j]; auto it = m.find(cur_pref); if(it != m.end()){ mx = max(mx, it->second - i); } cur_pref[j] =! cur_pref[j]; } cur_pref[in[i]] =! cur_pref[in[i]]; } cout << mx << endl; return 0; }