Hide

Problem J
Triangle Trees

A triangle tree is an undirected graph in which every cycle contains exactly three edges. Recall that a cycle is a sequence of at least $3$ distinct vertices $v_1, v_2, \ldots , v_ k$ such that there is an edge between $v_ i$ and $v_{i+1}$ for $i=1,\dots ,k-1$ and there is also an edge between $v_ k$ and $v_1$.

A colouring of a graph is an assignment of colours to the vertices such that the two endpoints of each edge of the graph receive different colours. Given a triangle tree, your task is to find a colouring which uses the smallest possible number of colours.

\includegraphics[width=0.45\textwidth ]{triangle.pdf}
Figure 1: Illustration of the second sample case. The number written just outside the vertex corresponds to the colour it receives corresponding to the output for that sample case.

Input

The first line of input contains two integers $N$ ($1\le N \le 10^5$) and $M$ ($0\le M \le 10^5$). The next $M$ lines each contain two integers $u$ and $v$ ($1\le u,v\le N$) indicating that the graph contains an edge between $u$ and $v$. It is guaranteed that $u\ne v$, all edges are unique, and that the graph is indeed a triangle tree.

Output

Output $N$ integers indicating the colours of vertices $1,2,\dots ,N$ in order. If you used $k$ colours, the integers should be from the set $\{ 1,2,\dots ,k\} $. If there are multiple valid colourings, you may output any one of them. Recall the goal is to output such a colouring using the fewest colours possible, i.e. minimize $k$.

Sample Input 1 Sample Output 1
3 3
1 2
2 3
3 1
2 3 1 
Sample Input 2 Sample Output 2
7 8
1 2
1 7
2 7
3 4
3 7
4 7
5 7
6 7
3 2 3 2 2 2 1 
Sample Input 3 Sample Output 3
5 4
1 2
1 3
2 4
2 5
1 2 2 1 1 

Please log in to submit a solution to this problem

Log in