PROGRAM BREAD;
const
maxn=1000000;
var
eat,e:array[1..maxn] of boolean;
a,cj:array[1..maxn] of longint;
n,k,least,p,q,i,j,nk,lj,kind:longint;
procedure init;
var
i:longint;
begin
fillchar(eat,sizeof(eat),false);
readln(n,k);
for i:=1 to n do
begin
read(a[i]);
if eat[a[i]] =false then
begin
eat[a[i]]:=true;
inc(kind);
end;
end;
least:=kind*k;
end;
//================= m a i n
begin
init;
p:=0;q:=maxn;
for i:=1 to n-least+1 do
begin
fillchar (cj,sizeof(cj),0);
nk:=kind;
lj:=0;
for j:=1 to kind do e[j]:=eat[j];
for j:=i to n do
begin
if e[a[j]] then
begin
inc(cj[a[j]]);
if cj[a[j]]=k then begin dec(nk);e[a[j]]:=false;end;
end;
inc(lj);
if nk=0 then
begin
if lj=least then begin write(i,’ ’,j);halt;end;
if lj<q-p+1 then begin p:=i;q:=j;end;
end;
end;
end;
if q-p=maxn+1 then writeln(’-1’)
else writeln(p,’ ’,q);
end.