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>).
line1 = list(map(int,input().split()))
line2 = list(map(int,input().split()))
N = line1[0]
K = line1[1]
##print("N la {} va k la {}".format(N,K))
# N = 8 
# K = 3
# a = [1,1,0,1,1,1,1,2]
# a.insert(0,0)
line2.insert(0,0)

freq = [0]*100002
count = 0
stop = False
for right in range(1,len(line2)):
	if (stop == False):
		freq[line2[right]] = freq[line2[right]] + 1
		
		if (freq[line2[right]] == 1):
			count = count + 1
		
		if (right == len(line2) - 1):
			if (count < K):
				print("-1 -1 ")
				stop = True
				break 
		
		left = 1
		
		while(count == K):
			#shrink left pointer
			freq[line2[left]] = freq[line2[left]] - 1
			if (freq[line2[left]] == 0):
				print("{} {}".format(left,right))
				stop = True
				break
			left = left + 1