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 array(n, k, arr):
    if n == 1:
        if k == 1:
            return 1, 1
        else:
            return -1, -1

    l = 0
    r = 1
    cnt = 1
    found_l = False
    my_dict = {}
    my_dict[arr[0]] = 1

    while r < n:
        if arr[l] != arr[r]:
            found_l = True
        else:
            if not found_l:
                l = r

        if my_dict.get(arr[r]) is None:
            my_dict[arr[r]] = 1
            cnt += 1

        if cnt == k:
            return l + 1, r + 1

        r += 1

    return -1, -1

first_line_input = list(map(int, input().split()))
A = list(map(int, input().split()))
N = first_line_input[0]
K = first_line_input[1]
l, r = array(N, K, A)
print("%d %d" % (l, r))
