#1293. 部落卫队

部落卫队

题目描述

原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突,几乎每个居民都有仇敌。

村落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出至多的居民入伍,并保证队伍中的任何2\red{2}个人都不是仇敌。

给定byteland部落中居民之间的仇敌关系,编程计算组成部落卫队的最佳方案。

输入格式

第一行2\red{2}个正整数n\red{n}m\red{m},表示byteland部落中有n\red{n}个居民,居民间有m\red{m}个仇敌关系。居民编号为123n\red{1,2,3,……,n}。接下来的m行中,每行有2\red{2}个正整数u\red{u}v\red{v},表示居民u\red{u}与居民v\red{v}是仇敌。

输出格式

第一行是部落卫队的最多人数。第二行是卫队组成xi\red{x_i}1<=i<=n\red{1<=i<=n}xi=0\red{x_i=0}表示居民i不在卫队中,xi=1\red{x_i=1}表示居民i在卫队中。(有多组解时先选编号小的入伍)

样例

输入样例

7 10
1 2
1 4
2 4
2 3
2 5
2 6
3 5
3 6
4 5
5 6

输出样例

3
1 0 1 0 0 0 1

数据范围与提示

n<=100\red{n<=100}

m<=2500\red{m<=2500}