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>).
# DO NOT EDIT THIS
import math
import sys
input = sys.stdin.readline

n, k = [int(j) for j in input().split()]
arr = [int(j) for j in input().split()]

x, y = -2, -2

i, j = 0, 0
obj = {}

while i < len(arr) or j < len(arr):
    if len(obj) < k and j < len(arr):
        obj[arr[j]] = obj.get(arr[j], 0) + 1

        if len(obj) == k and (x == -2 or y - x > j - i):
            x, y = i, j

        j += 1
    else:
        obj[arr[i]] = obj.get(arr[i], 0) - 1
        if obj[arr[i]] == 0:
            del obj[arr[i]]
        i += 1

        if len(obj) == k and (x == -2 or y - x > j - i - 1):
            x, y = i, j - 1

    # print('len', len(obj), obj)
    # print('i, j', i, j)

print(*[x + 1, y + 1])



