D. Сережа и множества
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Сережи есть m непустых множеств целых чисел A1, A2, ..., Am. По счастливой случайности оказалось, что данные множества являются разбиением множества всех целых чисел от 1 до n. Другими словами, для любого целого v (1 ≤ v ≤ n) существует ровно одно множество At такое, что . Кроме того у него есть целое число d.

Сережа решил выбрать несколько множеств из имеющихся. Предположим, что i1, i2, ..., ik (1 ≤ i1 < i2 < ... < ik ≤ m) — это индексы выбранных множеств. Тогда определим массив целых чисел b равный объединению выбранных множеств, то есть . Будем считать, что массив b отсортирован по возрастанию. Элемент с номером j в этом массиве (j-ый по возрастанию) будем обозначать bj. Сережа считает, что его выбор множеств правильный, если выполняются условия:

b1 ≤ dbi + 1 - bi ≤ d (1 ≤ i < |b|); n - d + 1 ≤ b|b|.

Сережа хочет найти k — минимальное количество выбранных множеств, чтобы его выбор был правильным. Помогите ему в этом.

Входные данные

В первой строке содержатся целые числа n, m, d (1 ≤ d ≤ n ≤ 105, 1 ≤ m ≤ 20). В следующих m строках содержатся множества, первое число в i-ой строке si (1 ≤ si ≤ n) означает размер i-го множества, далее в строке содержатся si различных целых чисел от 1 до n — множество Ai.

Гарантируется, что множества образуют разбиение всех целых чисел от 1 до n.

Выходные данные

В единственной строке выведите ответ на задачу — минимальное значение k при правильном выборе.

Примеры
Входные данные
3 2 2
1 2
2 1 3
Выходные данные
1
Входные данные
5 1 1
5 4 5 3 2 1
Выходные данные
1
Входные данные
7 3 1
4 1 3 5 7
2 2 6
1 4
Выходные данные
3