EduBrick

C. Размер минимального покрытия

2000 мс · 256 МБ · всё или ничего

Дан двудольный граф. Нужно вывести размер минимального вершинного покрытия — наименьшего набора вершин, такого что у каждого ребра хотя бы один конец в наборе.

По теореме Кёнига этот размер равен размеру максимального паросочетания. Строить само покрытие не нужно — достаточно посчитать паросочетание.

Формат ввода

В первой строке nn и mm (1≤n,m≤20001 \le n, m \le 2000). В следующих nn строках: KiK_i и номера соседей. Сумма KiK_i не превосходит 2⋅1052 \cdot 10^5.

Формат вывода

Выведите размер минимального вершинного покрытия.

Примеры

ввод
3 2
2 1 2
1 2
1 2
вывод
2
ввод
2 2
0
0
вывод
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.