#P50751. 「POI2007」办公楼 Offices

「POI2007」办公楼 Offices

题目描述

译自 POI 2007 Stage 1.「Offices

一个公司有 nn 个雇员,有 mm 对雇员互相留有电话。将雇员分进尽可能多的办公楼里,使得不同办公楼之间的雇员都留有电话,求最大的办公楼个数和对应方案。

输入格式

第一行两个整数 nnmm2n100 000,1m2 000 0002 \le n \le 100\ 000,1 \le m \le 2\ 000\ 000),分别表示雇员的个数和互相留有电话的雇员的个数。雇员从 11nn 编号。

接下来 mm 行每行两个整数 aia_ibib_i (1ai<bin1 \le a_i \lt b_i \le n)表示雇员 aia_ibib_i 互相留有电话。输入数据中每对雇员最多出现一次。

输出格式

第一行输出一个整数,表示办公楼的最大个数。

接下来一行输出一个不降序列,表示各办公楼雇员的个数。

如果有多种可能的答案,输出任意一种。

样例

7 16
1 3
1 4
1 5
2 3
3 4
4 5
4 7
4 6
5 6
6 7
2 4
2 7
2 5
3 5
3 7
1 7
3
1 2 4

一种方案是令 44 号雇员在第一个办公楼,5,75,7 号雇员在第二个办公楼,1,2,3,61,2,3,6 号雇员在第三个办公楼。