Максимальное паросочетание
Граф называется двудольным, если множество его вершин можно разбить на два подмножества и так, что любое ребро из соединяет вершину из с вершиной из .
Паросочетанием называется любое подмножество , такое что никакие два ребра из этого множетва не имеют общих вершин.
Максимальное паросочетание — это паросочетание, содержащее максимальное количество рёбер.
Найдите максимальное паросочетание в заданном двудольном графе.
Входные данные
В первой строке заданы три числа и , где — число вершин во множестве , — число вершин в множестве , а — количество рёбер в графе. Каждая из следующих строк содержит по два числа и , обозначающих, что вершина из множества соединена с вершиной из множества . Вершины во множествах и нумеруются независимо, начиная с единицы. Все входные числа целые.
Выходные данные
В первой строке выведите количество рёбер в максимальном паросочетании. Далее выведите строк, каждая из которых содержит два числа: и , где — вершина из множества , а — соответствующая ей вершина из множества в паросочетании. Взятые рёбра должны образовывать максимальное паросочетание.