eolymp
bolt
Try our new interface for solving problems
Problems

Missing Bridges

Missing Bridges

On Fig. 1 a scheme of 4 islands, presented by points and labeled from 1 to 4, and 7 bridges, presented by lines, each of them connecting 2 different points, are shown.

prb8555_1.gif

Each bridge could be traversed in both directions. The task is to start from some island, to pass on each of the bridges exactly once, and to return at the starting point. Such walk is called all-bridgeswalk.

To do this with the islands and bridges on Fig. 1 is impossible. But, if some new bridges are built, then the asked walk could be made – for example with new bridges that connect island 4 with island 1 and island 2 with island 3. On Fig. 2 a region with four islands and three bridges is shown. If the all-bridges-walk for this region is asked, then two bridges from point 3 to point 4 will be enough for doing the walk.

It is given a country with n islands and m bridges. Write a program bridges to find the smallest number of bridges to build in order to have an all-bridges-walk in the country.

Input

First line contains the numbers n and m (n1000, m10000). On the each of the next m lines the two ends of a bridge will be given.

Output

On the first line print the number k of the necessary new bridges. Each of the next k lines has to contain the two ends of a new bridge. Any set of new bridges that guaranties all-bridges-walk is acceptable as solution. If new bridges are not necessary, the program has to print just 0.

Time limit 1 second
Memory limit 128 MiB
Input example #1
4 7
1 2
2 3
3 2
2 1
1 4
2 4
3 4
Output example #1
2
1 4
2 3
Input example #2
4 5
1 2
2 3
3 1
3 4
3 4
Output example #2
0
Source 2017 IX International autumn tournament in informatics, Shumen, Junior, Day 2, Problem E