#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int n;
int a[MAXN];
int vis[MAXN];
bool check(int mid) {
int result = 0;
for (int i = 1; i < MAXN; i++) {
vis[i] = 0;
}
for (int i = 1; i <= n; i++) {
vis[a[i]]++;
if (vis[a[i]] == 2) {
result++;
}
}
for (int i = 1; i <= mid; i++) {
vis[a[i]]--;
if (vis[a[i]] == 1) {
result--;
}
}
if (result == 0) {
return 1;
}
for (int i = 1; i + mid <= n; i++) {
vis[a[i]]++;
if (vis[a[i]] == 2) {
result++;
}
vis[a[i + mid]]--;
if (vis[a[i + mid]] == 1) {
result--;
}
if (!result) {
return 1;
}
}
return 0;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int left = 1, right = n;
int result;
while (left <= right) {
int mid = (left + right) / 2;
if (check(mid)) {
result = mid;
right = mid - 1;
}
else {
left = mid + 1;
}
}
cout << n - result << endl;
return 0;
}