Picture Image by macrovector at Freepik
一家由近期多次合并而成的软件公司由分布在不同城市的若干办公室组成。在每个办公室里,都有一位人力资源(HR)经理,他认识在该办公室工作的所有人。此外,员工群体中当然还有许多人彼此认识,甚至跨越了办公室的界限。在这种背景下,“认识”是一种对称关系:如果员工 $a$ 认识员工 $b$,那么 $b$ 也认识 $a$。相比之下,虽然全体员工(希望如此)都知道 CEO,但这并不意味着 CEO 认识所有人。事实上,虽然 CEO 确实认识所有的 HR 经理,但她并不认识其他许多员工。这种情况必须改变!
其中一位 HR 经理受命策划一次公司团建,让大家能更好地互相了解。遗憾的是,似乎找不到一家能容纳全体员工的酒店。他或许能将此转化为优势?他正在考虑利用附近最多三家酒店,将员工分成三组,每组入住一家酒店,使得同一组内没有两名员工是互相认识的。这肯定能鼓励大家结识新朋友。
在规划的初期阶段,他不关心分组的大小,只想看看这种划分是否可行。他请求你提供帮助,并为你提供了一份完整的员工互识关系对列表。然而,你并不知道谁是 HR 经理或 CEO,但你知道 CEO 最多认识 15 名员工(包括 HR 经理),且公司分布在最多 8 个办公室。
输入格式
输入包含一行,包含整数 $N$ 和 $M$ ($2 \le N \le 1000, 1 \le M \le 100000$),分别表示员工人数和互相认识的员工对数。接下来 $M$ 行,每行包含两个整数 $a$ 和 $b$ ($1 \le a \neq b \le N$),表示员工 $a$ 认识员工 $b$。
题目保证对于给定的测试用例,至少存在一种将员工划分为带有 HR 经理和 CEO 的办公室的方式,如描述中所述。总结来说,CEO 是一名最多认识 15 个其他人的员工。其余员工可以被划分为最多 8 个办公室,每个办公室都有一名员工(HR 经理),他认识该办公室内的所有其他员工。此外,CEO 认识所有的 HR 经理。注意,来自不同办公室的员工也可能互相认识。
输出格式
如果可以将员工分成最多三组,使得任何互相认识的员工对都不在同一组中,则输出一行,包含每个员工的组别编号(1、2 或 3),顺序与输入中的编号一致。两个相邻的员工组别编号之间用单个空格分隔。如果存在多种解,输出任意一种即可。如果不存在这样的分组方式,输出 “Impossible”。
样例
输入格式 1
4 3 1 2 1 3 3 4
输出格式 1
1 2 2 3
输入格式 2
4 6 1 2 1 3 1 4 2 3 2 4 3 4
输出格式 2
Impossible