The only difference between easy and hard versions is constraints.

You are given n segments on the coordinate axis OX. Segments can intersect, lie inside each other and even coincide. The i-th segment is [l_i; r_i] (l_i ≤ r_i) and it covers all integer points j such that l_i ≤ j ≤ r_i.

The integer point is called bad if it is covered by strictly more than k segments.

Your task is to remove the minimum number of segments so that there are no bad points at all.

Input

The first line of the input contains two integers n and k (1 ≤ k ≤ n ≤ 200) — the number of segments and the maximum number of segments by which each integer point can be covered.

The next n lines contain segments. The i-th line contains two integers l_i and r_i (1 ≤ l_i ≤ r_i ≤ 200) — the endpoints of the i-th segment.

Output

In the first line print one integer m (0 ≤ m ≤ n) — the minimum number of segments you need to remove so that there are no bad points.

In the second line print m distinct integers p_1, p_2, ..., p_m (1 ≤ p_i ≤ n) — indices of segments you remove in any order. If there are multiple answers, you can print any of them.

Examples

Input


7 2
11 11
9 11
7 8
8 9
7 8
9 11
7 9


Output


3
1 4 7 


Input


5 1
29 30
30 30
29 29
28 30
30 30


Output


3
1 2 4 


Input


6 1
2 3
3 3
2 3
2 2
2 3
2 3


Output


4
1 3 5 6 
import operator

inp = input()
inp_arr = inp.split(" ")
n = int(inp_arr[0])
k = int(inp_arr[1])
segments = {}
points = {}
points_seg = {}
for i in range(n):
	inp = input()
	inp_arr = inp.split(" ")
	inp_arr =  [int(j) for j in inp_arr]
	segments[i] = inp_arr
	for j in range(inp_arr[0], inp_arr[1]+1):
		if j in points:
			points[j] += 1
			points_seg[j].add(i)
		else:
			points[j] = 1
			points_seg[j] = {i}
points_set = {}
for i in points:
	if points[i] >k:
		points_set[i] = points[i]
def remover(segments, points_set):
	count_segs = {}
	for i in segments:
		for j in range(segments[i][0], segments[i][1]+1):
			if j in points_set:
				if i in count_segs:
					count_segs[i] +=1
				else:
					count_segs[i] = 1

	max_seg = max(count_segs.items(), key=operator.itemgetter(1))[0]
	for j in range(segments[max_seg][0], segments[max_seg][1]+1):
		if j in points_set:
			points_set[j]-=1
			if points_set[j] ==k:
				del points_set[j]
	del segments[max_seg]
	return max_seg
seg_list = []
while len(points_set) >0:
	#print(points_set)
	seg = remover(segments, points_set)
	seg_list.append(str(seg+1))
print(len(seg_list))
out = " ".join(seg_list)
print(out)




