You've got an array *a*, consisting of *n* integers: *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub>. Your task is to find a minimal by inclusion segment [*l*, *r*] (1 ≤ *l* ≤ *r* ≤ *n*) such, that among numbers *a*<sub class="lower-index">*l*</sub>,  *a*<sub class="lower-index">*l* + 1</sub>,  ...,  *a*<sub class="lower-index">*r*</sub> there are exactly *k* distinct numbers.

Segment [*l*, *r*] (1 ≤ *l* ≤ *r* ≤ *n*; *l*, *r* are integers) of length *m* = *r* - *l* + 1, satisfying the given property, is called minimal by inclusion, if there is no segment [*x*, *y*] satisfying the property and less then *m* in length, such that 1 ≤ *l* ≤ *x* ≤ *y* ≤ *r* ≤ *n*. Note that the segment [*l*, *r*] doesn't have to be minimal in length among all segments, satisfying the given property.
The first line contains two space-separated integers: *n* and *k* (1 ≤ *n*, *k* ≤ 10<sup class="upper-index">5</sup>). The second line contains *n* space-separated integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> — elements of the array *a* (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">5</sup>).
n,k=map(int,input().split())
l=list(map(int,input().split()))
i=0
j=-1
cnt={}
a=n+1
ans=[-2,-2]
c=0
while(i<n-1 or j<n-1):
    #print(i,j,ans)
    if(j<i or (c<k and j<n-1)):
        j+=1
        if l[j] in cnt:
            if(cnt[l[j]]==0):
                c+=1
            cnt[l[j]]+=1
        else:
            cnt[l[j]]=1
            c+=1
    else:
        i+=1
        cnt[l[i-1]]-=1
        if(cnt[l[i-1]]==0):
            c-=1
    if(c>=k):
        if (j-i+1 <a):
            a=j-i+1
            ans=[i,j]
   # print(i,j,a,c,cnt)
print(ans[0]+1,ans[1]+1)