/// Author : Nguyễn Thái Sơn - K18 - KHMT - UIT
/// Training ICPC 2024
#include<bits/stdc++.h>
/// #pragma GCC optimize("O3,unroll-loops")
/// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fi first
#define se second
#define TASK "test"
#define pb push_back
#define EL cout << endl
#define Ti20_ntson int main()
#define in(x) cout << x << endl
#define all(x) (x).begin(),(x).end()
#define getbit(x, i) (((x) >> (i)) & 1)
#define cntbit(x) __builtin_popcount(x)
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FORD(i,l,r) for (int i = l; i >= r; i--)
#define Debug(a,n) for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> vii;
typedef unsigned long long ull;
typedef vector<vector<int>> vvi;
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }
const int N = 1e6 + 5;
const int oo = INT_MAX;
const int mod = 1e9 + 7;
const int d4x[4] = {-1, 0, 1, 0} , d4y[4] = {0, 1, 0, -1};
const int d8x[8] = {-1, -1, 0, 1, 1, 1, 0, -1}, d8y[8] = {0, 1, 1, 1, 0, -1, -1, -1};
int n, a[N], cnt[N];
inline void Read_Input() {
cin >> n;
FOR(i, 1, n)
cin >> a[i];
}
inline void Solve() {
/// DPT = n ^ 3
/// ko giai duoc voi n = 10^3 -> 10^9
int Ans = n;
/// l - r
/// đoạn
int le = 1;
int ri = n;
/// len co dinh
while (le <= ri) {
int len = (le + ri) / 2;
/// [1, len] se bi bo di
bool Oke = false;
int num = 0;
/// số lượng màu xuất hiện nhiều hơn 1 lần
for (int i = len + 1; i <= n; i++) {
cnt[a[i]]++;
if (cnt[a[i]] == 2) num++;
}
if (num == 0) Oke = true;
for (int l = 1, r = l + len - 1; r <= n; l++, r++) {
/// [l, r]
/// [l + 1, r + 1]
/// xoa di a[r + 1]
/// them vao a[l]
cnt[a[l]]++;
if (cnt[a[l]] == 2) num++;
if (r + 1 <= n) cnt[a[r + 1]]--;
if (cnt[a[r + 1]] == 1) num--;
if (num == 0) Oke = true;
}
if (Oke) Ans = len, ri = len - 1;
else le = len + 1;
for (int i = 1; i <= n; i++)
cnt[a[i]] = 0;
}
cout << Ans;
}
Ti20_ntson {
// freopen(TASK".INP","r",stdin);
// freopen(TASK".OUT","w",stdout);
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int T = 1;
// cin >> T;
while (T -- ) {
Read_Input();
Solve();
}
}
Ly8vIEF1dGhvciA6IE5ndXnhu4VuIFRow6FpIFPGoW4gLSBLMTggLSBLSE1UIC0gVUlUCi8vLyBUcmFpbmluZyBJQ1BDIDIwMjQKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CgovLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCi8vLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIsbHpjbnQscG9wY250IikKCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBUQVNLICJ0ZXN0IgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEVMIGNvdXQgPDwgZW5kbAojZGVmaW5lIFRpMjBfbnRzb24gaW50IG1haW4oKQojZGVmaW5lIGluKHgpIGNvdXQgPDwgeCA8PCBlbmRsCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQojZGVmaW5lIGdldGJpdCh4LCBpKSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSBjbnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50KHgpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspCiNkZWZpbmUgRk9SRChpLGwscikgZm9yIChpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIERlYnVnKGEsbikgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjb3V0IDw8IGFbaV0gPDwgIiAiOyBjb3V0IDw8IGVuZGwKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHZpaTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdnZpOwppbnQgZmFzdE1heChpbnQgeCwgaW50IHkpIHsgcmV0dXJuICgoKHkteCk+PigzMi0xKSkmKHheeSkpXnk7IH0KCmNvbnN0IGludCBOID0gMWU2ICsgNTsKY29uc3QgaW50IG9vID0gSU5UX01BWDsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CmNvbnN0IGludCBkNHhbNF0gPSB7LTEsIDAsIDEsIDB9ICwgZDR5WzRdID0gezAsIDEsIDAsIC0xfTsKY29uc3QgaW50IGQ4eFs4XSA9IHstMSwgLTEsIDAsIDEsIDEsIDEsIDAsIC0xfSwgZDh5WzhdID0gezAsIDEsIDEsIDEsIDAsIC0xLCAtMSwgLTF9OwoKaW50IG4sIGFbTl0sIGNudFtOXTsKCmlubGluZSB2b2lkIFJlYWRfSW5wdXQoKSB7CiAgICBjaW4gPj4gbjsKICAgIEZPUihpLCAxLCBuKQogICAgICAgIGNpbiA+PiBhW2ldOwp9CgppbmxpbmUgdm9pZCBTb2x2ZSgpIHsKCiAgICAvLy8gRFBUID0gbiBeIDMKCiAgICAvLy8ga28gZ2lhaSBkdW9jIHZvaSBuID0gMTBeMyAtPiAxMF45CgogICAgaW50IEFucyA9IG47CgogICAgLy8vIGwgLSByCgogICAgLy8vIMSRb+G6oW4KCgogICAgaW50IGxlID0gMTsKICAgIGludCByaSA9IG47CgogICAgLy8vIGxlbiBjbyBkaW5oCgogICAgd2hpbGUgKGxlIDw9IHJpKSB7CiAgICAgICAgaW50IGxlbiA9IChsZSArIHJpKSAvIDI7CgogICAgICAgIC8vLyBbMSwgbGVuXSBzZSBiaSBibyBkaQoKICAgICAgICBib29sIE9rZSA9IGZhbHNlOwoKICAgICAgICBpbnQgbnVtID0gMDsKICAgICAgICAvLy8gc+G7kSBsxrDhu6NuZyBtw6B1IHh14bqldCBoaeG7h24gIG5oaeG7gXUgaMahbiAxIGzhuqduCgogICAgICAgIGZvciAoaW50IGkgPSBsZW4gKyAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBjbnRbYVtpXV0rKzsKICAgICAgICAgICAgaWYgKGNudFthW2ldXSA9PSAyKSBudW0rKzsKICAgICAgICB9CgoKICAgICAgICBpZiAobnVtID09IDApIE9rZSA9IHRydWU7CgogICAgICAgIGZvciAoaW50IGwgPSAxLCByID0gbCArIGxlbiAtIDE7IHIgPD0gbjsgbCsrLCByKyspIHsKCgogICAgICAgICAgICAvLy8gW2wsIHJdCgogICAgICAgICAgICAvLy8gW2wgKyAxLCByICsgMV0KCiAgICAgICAgICAgIC8vLyB4b2EgZGkgYVtyICsgMV0KICAgICAgICAgICAgLy8vIHRoZW0gdmFvIGFbbF0KCiAgICAgICAgICAgIGNudFthW2xdXSsrOwogICAgICAgICAgICBpZiAoY250W2FbbF1dID09IDIpIG51bSsrOwoKICAgICAgICAgICAgaWYgKHIgKyAxIDw9IG4pIGNudFthW3IgKyAxXV0tLTsKICAgICAgICAgICAgaWYgKGNudFthW3IgKyAxXV0gPT0gMSkgbnVtLS07CgogICAgICAgICAgICBpZiAobnVtID09IDApIE9rZSA9IHRydWU7CgoJCX0KCgkJaWYgKE9rZSkgQW5zID0gbGVuLCByaSA9IGxlbiAtIDE7CgkJZWxzZSBsZSA9IGxlbiArIDE7CgoJCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICAgICAgY250W2FbaV1dID0gMDsKICAgIH0KCiAgICBjb3V0IDw8IEFuczsKfQoKVGkyMF9udHNvbiB7Ci8vICAgIGZyZW9wZW4oVEFTSyIuSU5QIiwiciIsc3RkaW4pOwovLyAgICBmcmVvcGVuKFRBU0siLk9VVCIsInciLHN0ZG91dCk7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgVCA9IDE7Ci8vICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQgLS0gKSB7CiAgICAgICAgUmVhZF9JbnB1dCgpOwogICAgICAgIFNvbHZlKCk7CiAgICB9Cn0KCgoK