#2755. 有序奶牛

有序奶牛

题目描述

约翰的N(1\red{N(1≤}N\red{N≤}1500)\red{1500)}头牛排成一行挤奶时,有确定的顺序.牛被编成连续的号码1\red{1}...N,\red{...N,}他拥有L\red{L}条关于奶牛顺序的信息,所 有的信息都写成"A\red{A}B\red{B}的前面"这样的形式,而且他知道最后一条是多余的.

他觉得,有些冗余信息可以由其他信息推出,可以对这些信息进行精减.

请帮助约翰删除旧能多的冗余信息,但要保证能推出原有的顺序.可以保证的是,答案唯一,且最初的信息没有矛盾,如A\red{A}B\red{B}前面,B\red{B}A\red{A}前面 .

输入格式

1\red{1}行:两个整数N\red{N}L\red{L}

2\red{2}L+1\red{L+1}行:每行两个整数X\red{X}Y(1\red{Y(1≤}X\red{X,}y\red{y≤}N)\red{N),}表示X\red{X}Y\red{Y}前.无重复.

输出格式

1\red{1}行:整数U.\red{U.}

2\red{2}U+I\red{U+I}行:输出精减后的信息,每行2\red{2}个数字,按第1\red{1}列数字排序.

样例

输入样例

5 6
3 5
4 2
5 2
2 1
3 1
4 1

输出样例

4
2 1
3 5
4 2
5 2

提示

3\red{3}1\red{1}前,4\red{4}1\red{1}前可推.输出的每一行,不能被其他推出.