#include<bits/stdc++.h>
using namespace std;
const int N=500010;
int n,k,ll=1,rr=1,l=1,r=0,kk=0;
int arr[N];
int hasharr[1000010];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
for(int i=1;i<=n;i++){
r++;
if(hasharr[arr[i]]==0){
hasharr[arr[i]]++;
kk++;
}
else{
hasharr[arr[i]]++;
}
if(kk>k){
kk--;
hasharr[arr[r]]--;
r--;
if((r-l+1)>(rr-ll+1)){
rr=r;
ll=l;
}
while(kk+1!=k){
hasharr[arr[l]]--;
if(hasharr[arr[l]]==0){
kk--;
l++;
break;
}
l++;
}
i--;
}
}
if((r-l+1)>(rr-ll+1)){
rr=r;
ll=l;
}
cout<<ll<<" "<<rr;
return 0;
}
unordered_map要慎用,情况最坏时(数据设置的冲突过多)时间复杂度可以达到O(n)