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>).
'''
Đề bài: 
yêu cầu:
- đi tìm đoạn TỐI THIỂU [l,r] sao cho có ĐÚNG k giá trị phân biệt
- trong đó:
+ TỐI THIỂU:  không có đoạn con [x,y] thỏa mãn tính chất và có độ dài < l + r - 1
Hướng giải: 
- tạo biến l lưu giữ đầu: điều kiện: không được trùng với số kế nó
- tạo biến r lưu giữ cuối
- count: đến số kí tự khác biệt: 
'''
n, k = map(int,input().split())
a =  list(map(int,input().split()))
l = r = 0
count = 1
uniqueArr = []
for i in range(n):
  if count == k:
    break
  if a[l] == a[i]:
    l = i
    uniqueArr.clear()
    count = 1
    uniqueArr.append(a[l])
  else:
    if a[i] not in uniqueArr:
      count += 1
    r = i
    uniqueArr.append(a[r])
    

if count != k:
  l = -2
  r = -2
    
print((l + 1), (r + 1))
    
    
    
    
  