// tresc: https://szkopul.edu.pl/problemset/problem/9y5Fywu8h7DyO89-gd5ifrju/site/?key=statement
// OIG XVI (2 etap)
#include <iostream>
#include <map>
#include <vector>
using namespace std;
std::map<int, int> smaki;
const int MINI = 1000 * 1000 * 1000 + 7;
int main() {
ios_base::sync_with_stdio(0);
int N;
cin >> N;
std::vector<int> A(N);
int maxi = 0;
for (int i = 0; i < N; i++) {
cin >> A[i];
if (A[i] > maxi) {
maxi = A[i];
}
}
int k = 0;
int p = 0;
int suma = 0;
int wynik = 0;
int mini = MINI;
int max_smak = 0;
int max_smak_wart = A[0];
for (int i = 0; i < N; i++) {
while (p < N && max_smak < 3) {
smaki[A[p]]++;
if (smaki[A[p]] > max_smak) {
max_smak = smaki[A[p]];
max_smak_wart = A[p];
}
p++;
}
if (max_smak == 3) {
if (mini > p - i + 1) {
mini = p - i + 1;
}
wynik++;
}
smaki[A[i]]--;
if (max_smak_wart == A[i]) {
max_smak--;
}
}
if (mini == MINI) {
cout << "NIE";
} else {
cout << mini - 1;
}
}