#P4833. 萨塔尼亚的一生之敌

    ID: 2891 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>图论枚举,暴力概率论,统计队列

萨塔尼亚的一生之敌

Description

详情是这样的,在萨塔尼亚强大的立场下,这个世界被分成了若干区域,有一些区域有连边。为了能够抢回菠萝包,萨亚尼亚将这些区域再分成了若干领域,使得每个领域由一些区域组成,萨塔尼亚占领了一些领域,并以这些领域为基础向走狗发起进攻。为了成功夺回所有菠萝包,萨塔尼亚决定让这些自己占领的领域满足以下性质

1、 为了能够及时支援友军,在自己占领的领域中,每两个存在于不同领域的两个点都要有连边

2、 为了能够灵活的进攻,自己的任意一个领域中的任意一个点和走狗占领的任意一个领域中的任意一个点都要有连边

当然走狗也不是吃干饭的,它为了羞辱萨塔尼亚,也选择了一些领域,这些领域满足的性质和萨塔尼亚选择的领域满足的性质一样,且走狗的领域和萨塔尼亚的领域互补

萨塔尼亚觉得,只要将领域分的越分散,胜利的几率就越大,于是想分尽可能多的领域,请问最多能分多少领域?每个领域有多少个区域组成?

*特殊的,一个人可能占领不到任何一个领域,即占领的领域数量为0。如果你能告诉萨塔尼亚答案,萨塔尼亚就会占领最大的领域向走狗发起进攻,并最终失败。

Input Format

第一行两个整数n和m,表示n个区域m条边

接下来m行每行两个数a,b表示a和b之间有连边,保证没有自环和重边

Output Format

第一行输出一个整数s表示最多能分成领几个领域

第二行s个数从小到大输出每个领域由几个区域组成

3 2
1 2
2 3

2
1 2

Hint

样例解释:最多分成两个领域,区域1、3为一个领域,区域2为一个领域

请结合样例仔细读题!

对于40%的数据,n≤10^3,m≤5*10^5

对于100%的数据,n≤10^5,m≤2*10^6