题目描述
小 S 家里有一台奇怪的计算机……
这台计算机中共有 n 颗 CPU。它们之间通过 m 条连接线相连,所有的 CPU 和连接线,分别用从 1 开始的连续正整数进行编号。
每一颗 CPU 上能够存储一个值。初始时,1 号 CPU 上的值为 0,而其他 CPU 的值均为 109。接下来,这台计算机的计算过程如下所述:
- 随机选取一条连接线,设这条连接线是 i 号连接线;
- 随机选取这条线的一端,设它为 x 号 CPU;
- 设这条线的另一端为 y 号 CPU;
- 设 t 为:x 号 CPU 上的值与 i 中较大的数;
- 如果 t 比 y 号 CPU 上的值更小,则将 y 号 CPU 上的值改写为 t。
计算机将重复上述过程,直到稳定:即无论在前两步中如何选取,都无法在最后一步改写任何 CPU 上的值。
你需要计算稳定状态下所有 CPU 上的值。如果答案不唯一,你可以输出任何一个解。
输入格式
从标准输入读入数据。
输入的第一行包含两个正整数 n,m。
接下来 m 行,每行输入两个正整数。设第 i 行输入的两个数为 ai,bi,则表示编号为 i 的线连接了 ai 与 bi 号 CPU。
每行中,相邻的两个数之间用一个空格隔开。
输出格式
输出到标准输出。
输出 n 行,每行一个整数,其中第 j 行的数表示编号为 j 的 CPU 在最终稳定状态下的值。
如果有多组解,你可以输出任意一组。
样例
输入
6 8
1 4
2 3
1 2
4 2
1 6
2 6
3 6
4 6
输出
0
3
3
1
1000000000
5
数据规模
对于 20% 的测试点,保证 n,m≤10。
对于 30% 的测试点,保证 n≤100,m≤1,000。
对于 50% 的测试点,保证 n≤1,000,m≤10,000。
对于 70% 的测试点,保证 n≤10,000,m≤50,000。
对于所有数据,保证 n≤100,000,m≤300,000。