시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
3 초 | 512 MB | 147 | 32 | 27 | 20.149% |
You have an airline route map of a certain region. All the airports in the region and all the non-stop routes between them are on the map. Here, a non-stop route is a flight route that provides non-stop flights in both ways.
Named after the great mathematician Leonhard Euler, an Eulerian tour is an itinerary visiting all the airports in the region taking a single flight of every non-stop route available in the region. To be precise, it is a list of airports, satisfying all of the following.
It may not always be possible to find an Eulerian tour only with the non-stop routes listed in the map. Adding more routes, however, may enable Eulerian tours. Your task is to find a set of additional routes that enables Eulerian tours.
The input consists of a single test case.
n m a1 b1 . . . am bm
n (3 ≤ n ≤ 100) is the number of airports. The airports are numbered from 1 to n. m (0 ≤ m ≤ n(n−1)/2) is the number of pairs of airports that have non-stop routes. Among the m lines following it, integers ai and bi on the i-th line of them (1 ≤ i ≤ m) are airport numbers between which a non-stop route is operated. You can assume 1 ≤ ai < bi ≤ n, and for any i ≠ j, either ai ≠ aj or bi ≠ bj holds.
Output a set of additional non-stop routes that enables Eulerian tours. If two or more different sets will do, any one of them is acceptable. The output should be in the following format.
k c1 d1 . . . ck dk
k is the number of non-stop routes to add, possibly zero. Each of the following k lines should have a pair of integers, separated by a space. Integers ci and di in the i-th line (ci < di) are airport numbers specifying that a non-stop route is to be added between them. These pairs, (ci, di) for 1 ≤ i ≤ k, should be distinct and should not appear in the input.
If adding new non-stop routes can never enable Eulerian tours, output -1 in a line.
4 2 1 2 3 4
2 1 4 2 3
6 9 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6
-1
6 7 1 2 1 3 1 4 2 3 4 5 4 6 5 6
3 1 5 2 4 2 5
4 3 2 3 2 4 3 4
-1
5 5 1 3 1 4 2 4 2 5 3 5
0