#include <bits/stdc++.h>
using namespace std;
const int MAX = 1000005;
const int MOD = 1e9 + 7;
int dp[256];
int setsz;
string s;
int ccnt = 0;
int n;
int init() {
  int i;
  for (i = 0; i < n; ++i) {
    if (dp[s[i]] == 0) {
      ccnt++;
    }
    dp[s[i]]++;
    if (ccnt == setsz) break;
  }
  return i;
}
int contr(int l, int r) {
  int i = l;
  for (i = l; i <= r; i++) {
    dp[s[i]]--;
    if (dp[s[i]] == 0) {
      ccnt--;
      i++;
      break;
    }
  }
  return i;
}
int exp(int l, int r) {
  int i = r + 1;
  for (; i < n; i++) {
    dp[s[i]]++;
    if (dp[s[i]] == 1) {
      ccnt++;
      break;
    }
  }
  return i;
}
int main() {
  cin >> n;
  cin >> s;
  set<char> cset;
  for (int i = 0; i < n; ++i) {
    cset.insert(s[i]);
  }
  setsz = cset.size();
  int lptr = 0;
  int rptr = 0;
  rptr = init();
  int mnsize = rptr + 1;
  while (rptr != n) {
    lptr = contr(lptr, rptr);
    int curseglen = rptr - lptr + 2;
    mnsize = min(mnsize, curseglen);
    rptr = exp(lptr, rptr);
  }
  cout << mnsize;
}
