\begin{problem}{Pairs. Паросочетание}{pairs.in}{pairs.out}{2 секунды}{64 мегабайта}

\emph{Двудольным графом} называется граф $(V,E), E \subset V \times V$ 
такой, что его множество вершин $V$ можно разбить на два подмножества
$A$ и $B$, для которых $\forall (e_1,e_2) \in E \ e_1 \in A, e_2 \in B$
и $A, B \subset E, A \cap B = \varnothing$.

\emph{Паросочетанием} в двудольном графе называется любой его набор
несмежных ребер, то есть такой набор
$S \subset E$, что для любых двух ребер $e_1 = (u_1, v_1), e_2 = (u_2, v_2)$
из $S$ выполнено $u_1 \neq u_2$ и $v_1 \neq v_2$.

Ваша задача --- найти максимальное паросочтание в двудольном графе,
то есть паросочетание с максимально возможным числом ребер.

\InputFile

В первой строке записаны два целых числа $n$ и $m$ ($1\leq n, m \le 250$)
 --- число вершин в $A$ и число вершин в $B$.

Далее следуют $n$ строк с описаниями ребер. $i$-я вершина из $A$ описана
в $i+1$-й строке файла. Каждая из этих строк содержит номера вершин из
$B$, соединенных с $i$-й вершиной $A$. Вершины в $A$ и $B$ нумеруются
независимо (с единицы). Список завершается числом 0.

\OutputFile

Первая строка выходного файла должна содержать одно целое число $l$
--- количество ребер в максимальном паросочетании. Далее должны следовать
$l$ строк, в каждой из которых должны быть два целых числа
$u_j$ и $v_j$ --- концы ребер паросочетания в $A$ и $B$, соотвественно.

\Example

\begin{example}
\exmp{
2 2
1 2 0
2 0
}{
2
1 1
2 2
}%
\end{example}

\end{problem}