P0780

[POI2007]办公楼biu

[POI2007]办公楼biu

FGD 创办了一家电话公司,雇用了 NN 名职员,并为每名职员配备了一部手机。每名职员的手机中都存有部分同事的电话号码。

随着公司规模不断扩大,原有的办公楼已经十分狭窄,FGD 决定将公司迁入若干座新的办公楼。为了给职员提供更好的工作环境,他希望使用尽可能多的办公楼。

为了方便联系,如果两名职员被安排在不同的办公楼中,那么他们必须拥有彼此的电话号码。

请计算最多可以使用多少座办公楼,并给出每座办公楼中安排的职员人数。

输入格式

第一行包含两个整数 NN 和 MM,分别表示职员人数以及互相拥有电话号码的职员对数。职员依次编号为 1,2,…,N1,2,\ldots,N。

接下来 MM 行,每行包含两个整数 AA 和 BB,表示职员 AA 和职员 BB 拥有彼此的电话号码。

输出格式

第一行输出一个整数 SS,表示最多可以使用的办公楼数量。

第二行输出 SS 个整数,表示每座办公楼中安排的职员人数。这些整数应按从小到大的顺序排列,每个整数后接一个空格。

样例输入

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

样例解释

FGD 可以将职员 44 安排到第 11 座办公楼,将职员 55 和职员 77 安排到第 22 座办公楼,并将其余职员安排到第 33 座办公楼。

数据范围

  • 2≤N≤1052\le N\le 10^5;
  • 1≤M≤2×1061\le M\le 2\times 10^6;
  • 对于每对职员,满足 1≤A<B≤N1\le A<B\le N。

来源与许可

本题为 POI 2007 试题「办公楼(BIU)」,题面与测试数据整理自 BZOJ 1098。

样例 1

输入

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