template <classT> inlinevoidread(T &x) { x = 0; int f = 0; char ch = getchar(); while (!isdigit(ch)) { f |= ch == '-'; ch = getchar(); } while (isdigit(ch)) { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); } x = f ? -x : x; return ; }
typedefunsignedlonglong uLL; typedeflonglong LL;
int a[1000010], vis[2010]; int n, m, l = 1, r, ansl = 1, ansr, s, min = 0x3f3f3f3f;
intmain(){ read(n), read(m); ansl = 1, ansr = n; for (int i = 1; i <= n; ++i) read(a[i]); while (l <= n) { while (s < m && r < n) { ++r; if (!vis[a[r]]) ++s; ++vis[a[r]]; } --vis[a[l]]; if (!vis[a[l]]) --s; ++l; if (r - l < min && s == m) ansl = l, ansr = r, min = r - l; } printf("%d %d\n", ansl, ansr); return0; }