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>).
def getArray(lst,n,k):
    lstNoneRepeat = []
    i = 0
    l = r = -1 
    m = n
    while i < n:
      if lst[i] not in lstNoneRepeat:
        lstNoneRepeat.append(lst[i])
      i += 1
    if len(lstNoneRepeat) < k:
      return l,r
    
    start = 0
    end = k - 1
    while end < len(lstNoneRepeat):
      i = lst.index(lstNoneRepeat[start]) 
      j = lst.index(lstNoneRepeat[end])
      lenghtNow = len(lst[i:j])
      if lenghtNow < m:
        m = lenghtNow
        l = lst[i]
        r = lst[j]
        if lenghtNow == k - 1:
          return l,r
      start += 1
      end += 1
    return l,r
  
n, k = map(int,input().split())
lst = list(map(int,input().split()))
l,r = getArray(lst,n,k)
print(l,r)