#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 10;
const int p = 1e9 + 7;
int n, k;
int a[N], s[N];
bool fl[N],f1[N];
int ans[N];
int lowbit(int x){
return x & -x;
}
void update(int x, int d){
while(x <= n){
ans[x] += d;
x += lowbit(x);
}
}
int sum(int x){
int s = 0;
while(x >= 1){
s += ans[x];
x -= lowbit(x);
}
return s;
}
signed main(){
cin >> n >> k;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
int l = 1, r = 1, x = 0;
int minn = n;
s[a[l]]++;
update(s[a[1]], 1);
while(r <= n){
if(x >= k && l < r){
minn = min(minn, r - l + 1);
x -= sum(n) - sum(s[a[l]] - 1) - 1;
update(s[a[l]], -1);
s[a[l]]--;
if(s[a[l]] > 0)update(s[a[l]], 1);
l++;
}else{
if(r == n)break;
r++;
if(s[a[r]] > 0)update(s[a[r]], -1);
s[a[r]]++;
update(s[a[r]], 1);
x += sum(n) - sum(s[a[r]] - 1) - 1;
}
}
if(l == 1 && r == n && x < k){
cout << -1;
}else{
cout << minn;
}
}