Codeforces Round 238 (Div. 2)
E
Graph Cutting
Codeforces
2300
原题
← D→
翻译中…

Little Chris is participating in a graph cutting contest. He's a pro. The time has come to test his skills to the fullest.

翻译中…

Chris is given a simple undirected connected graph with $*n*$ vertices (numbered from 1 to $*n*$) and $*m*$ edges. The problem is to cut it into edge-distinct paths of length 2. Formally, Chris has to partition all edges of the graph into pairs in such a way that the edges in a single pair are adjacent and each edge must be contained in exactly one pair.

翻译中…

For example, the figure shows a way Chris can cut a graph. The first sample test contains the description of this graph.

翻译中…

image

翻译中…

You are given a chance to compete with Chris. Find a way to cut the given graph or determine that it is impossible!

翻译中…

Input

翻译中…

The first line of input contains two space-separated integers $*n*$ and $*m*$ ($1 ≤ *n*, *m* ≤ 10^{5}$), the number of vertices and the number of edges in the graph. The next $*m*$ lines contain the description of the graph's edges. The $*i*$-th line contains two space-separated integers $*a*_{*i*}$ and $*b*_{*i*}$ ($1 ≤ *a*_{*i*}, *b*_{*i*} ≤ *n*$; $*a*_{*i*} ≠ *b*_{*i*}$), the numbers of the vertices connected by the $*i*$-th edge. It is guaranteed that the given graph is simple (without self-loops and multi-edges) and connected.

翻译中…

Note: since the size of the input and output could be very large, don't use slow output techniques in your language. For example, do not use input and output streams (cin, cout) in C++.

翻译中…

Output

翻译中…

If it is possible to cut the given graph into edge-distinct paths of length 2, output image lines. In the $*i*$-th line print three space-separated integers $*x*_{*i*}$, $*y*_{*i*}$ and $*z*_{*i*}$, the description of the $*i*$-th path. The graph should contain this path, i.e., the graph should contain edges $(*x*_{*i*}, *y*_{*i*})$ and $(*y*_{*i*}, *z*_{*i*})$. Each edge should appear in exactly one path of length 2. If there are multiple solutions, output any of them.

翻译中…

If it is impossible to cut the given graph, print "No solution" (without quotes).

翻译中…

样例

Input #1
8 12
1 2
2 3
3 4
4 1
1 3
2 4
3 5
3 6
5 6
6 7
6 8
7 8
Output #1
1 2 4
1 3 2
1 4 3
5 3 6
5 6 8
6 7 8
InputCopy OutputCopy
Input #2
3 3
1 2
2 3
3 1
Output #2
No solution
InputCopy OutputCopy
Input #3
3 2
1 2
2 3
Output #3
1 2 3
InputCopy OutputCopy
题目信息
题号
405E
时间限制
2 s
内存限制
256 MB
标签
DFS 及类似
图论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。