Максимальне паросполученя
Граф називається двудольним, якщо множину його вершин можна розбити на дві підмножини та так, що будь-яке ребро з з'єднує вершину з з вершиною з .
Паросполученням називається будь-яка підмножина , така що жодні два ребра з цієї множини не мають спільних вершин.
Максимальне паросполучення — це паросполучення, що містить максимальну кількість рёбер.
Знайдіть максимальне паросполучення в заданому двудольному графі.
Вхідні дані
В першому рядку задано три числа та , де — кількість вершин у множині , — кількість вершин у множині , а — кількість рёбер у графі. Кожен з наступних рядків містить по два числа та , що означає, що вершина з множини з'єднана з вершиною з множини . Вершини в множинах та нумеруються незалежно, починаючи з одиниці. Усі вхідні числа цілі.
Вихідні дані
В першому рядку виведіть кількість ребер у максимальному паросполученні. Далі виведіть рядків, кожен з яких містить два числа: та , де — вершина з множини , а — відповідна їй вершина з множини в паросполученні. Обрані ребра повинні утворювати максимальне паросполучення.