U584261 GAME on cactus

题目背景

成长:[tree](https://codeforces.com/problemset/problem/1970/C3) $\Rightarrow$ cactus;[no bridge](/problem/P5966) $\Rightarrow$ cactus with bridges。

题目描述

小 X 和小 Y 来到一棵 $n$ 个点 $m$ 条边的仙人掌上玩游戏,点编号为 $1\sim n$。 一开始某个节点上有个棋子,小 X 和小 Y 轮流移动这个棋子,已经走过的边不能再走,谁不能移动谁就输了。 小 Y 先手,她向你求助,对于每一个节点,若其作为初始放置棋子的节点,她是否有必胜策略?

输入格式

第一行两个整数 $n,m$。 接下来 $m$ 行,每行两个整数 $u,v$,表示 $u,v$ 之间有一条边。

输出格式

$n$ 行,每行一个整数,对于第 $i$ 行,若初始棋子放在 $i$,小 Y 有必胜策略,输出 $1$,否则输出 $2$。

说明/提示

$2\leq n\leq2\times10^5$。熟悉仙人掌的同学应该不需要 $m$ 的范围($n-1\leq m\leq2n-2$)。 对于一个测试点,$m=n-1$。 对于另一个测试点,保证图中无桥、无重边。 对于另一个测试点,$n,m\leq18$。 对于另一个测试点,$n\leq10^3$。 对于另一个测试点,$n\leq10^4$。 subtask 1 为 Hack 数据,均满足 $n,m\le18$,若全部通过,则得 $1$ 分。本题总分 $101$。 我的博文 & 题解:[《圆方树学习笔记 —— 一种关于点双连通分量的思考方式》](https://www.cnblogs.com/XuYueming/p/18313014)、[《GAME on cactus | [POI 2016] Hydrorozgrywka 题解》](https://www.cnblogs.com/XuYueming/p/18992600)。