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=input().split()
n=int(n)
k=int(k)
a=input().split()
a=list(map(int,a))
l,r=-1,-1
left=1
if k==1:
    print(1,1)
    exit()
b=set([])
c=set([])
check=True
while left<n:
    if a[left]==a[0]:
        left+=1
    else:
        check=False
        l = left
        r = left+1
        b.add(a[0])
        b.add(a[left])
        if len(b)==k:
            break
        for i in range(l,n):
            b.add(a[i])
            r = i + 1
            if len(b)==k:
                break
        break
if check==False:
    for i in range(r-1,l-2,-1):
        c.add(a[i])
        if len(c)==k:
            l=i+1
            break
    if len(c)==k:
        print(l,r)
    else:
        print(-1,-1)
else:
    print(-1,-1)
