#include <bits/stdc++.h>
using namespace std;
int n, m, cnt[2010], sum, ansh, anst = 100000000;
int hh = 0, tt = -1, que[1000010];
int main()
{
scanf("%d%d", &n, &m);
for(int i = 0; i < n; i++)
{
int a;
scanf("%d", &a);
if(!cnt[a])
{
sum++;
cnt[a]++;
que[++tt] = a;
//printf(" -!%d %d!- ", tt-hh+1, anst-ansh+1);
if(sum == m && tt-hh+1 < anst-ansh+1)
{
anst = tt, ansh = hh;
sum--;
cnt[que[hh]]--;
hh++;
}
}
else if(sum < m)
{
cnt[a]++;
que[++tt] = a;
}
while(cnt[que[hh]] > 1)
{
cnt[que[hh]]--;
hh++;
}
//printf("%d %d %d %d %d %d\n", hh+1, tt+1, que[hh], que[tt], cnt[que[hh]], sum);
}
printf("%d %d", ansh+1, anst+1);
return 0;
}
实在想不明白了......