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>).
			
# n = 8
# k = 3
# a = [1, 1, 2, 2, 3, 3, 4, 5]
n, k = map(int, input().split())
a    = list(map(int, input().split()))

uniq = [0]*n

le = 0
ri = 0
pr = 0
sa = len(a)
ha = False
x0 = 0
y0 = 0

cnt = 0

if (k == 1):
	print('1 1')
else:
	for le in range(0,sa-k+1):	
		if (uniq[a[le]-1] == 0):
			uniq[a[le]-1] += 1
			cnt += 1
				
		if (cnt == k): 
			x0 = le
		else:	
			pr = max(pr,le)
			
			for ri in range(pr+1,sa):		
				uniq[a[ri]-1] += 1
				
				if (uniq[a[ri]-1] == 1):
					cnt += 1
							
				if (cnt == k):
					x0 = le
					y0 = ri
					ha = True
					pr = ri
					break
				
		if (ri == (sa-1)) and (not ha):
			break
			
		uniq[a[le]-1] -= 1
		
		if (uniq[a[le]-1] == 0):
			cnt -= 1
		
	if ha:
		print(x0+1, y0+1)
	else:
		print('-1 -1')
			
	
	
"""
# O(N**2)
def uniq(a):
	uni = []
	for i in range(len(a)):
		if not (a[i] in uni):
			uni.append(a[i])
			
	return len(uni)

n, k = map(int, input().split())
a    = list(map(int, input().split()))
	
size = uniq(a)
have = False
sa   = len(a)

left = -1

x = 0
y = sa
z = []

while (left < sa - k):
	left += 1
	righ  = sa+1 
	
	while (righ > left + k):
		righ -= 1
		b     = a[left : righ]
		t     = uniq(b)
		
		if (t == k) and (righ - left <= y - x):
			have = True
			x, y, z = left+1, righ, b

if not have:
	print('-1 -1')
else:
	print(x, y)
"""