#39. 收集宝石

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Burger

题目描述

聪聪在玩冒险岛游戏,为了召唤法力更强大的神龙,他必须尽可能收集更多的魔法宝石,每颗宝石都有不同的功效。不过在游戏里,几乎每一颗魔法宝石都会和另外一颗宝石相冲。相冲表示这两颗宝石不能同时拥有。例如,宝石和宝石相冲,那么,你可以选择两颗宝石都不收集,也可以只收集宝石或者只收集宝石,但不能同时拥有宝石和宝石. 现在给定了游戏里宝石的数量,宝石从1到N依次编号,并给出M对相冲的宝石编号,请帮聪聪计算出最多能够收集到多少颗宝石。

例如: 时,颗宝石的编号分别为,其中有对相冲的宝石,对应编号如下: 1 2 2 3 2 4 2 5 2 6 3 4 4 5 5 6 这表示宝石和宝石相冲,宝石和宝石都相冲,宝石和宝石相冲,宝石和宝石相冲,宝石和宝石相冲。 有三个方案收集到的宝石数量最多:,这些方案里,最多收集到的宝石数量都是,所以程序输出

输入格式

第一行输入两个正整数,分别表示游戏里的宝石数量和M对相冲的宝石,两个正整数之间用一个空格隔开 接下来输入行,每行两个正整数,分别表示相冲的两颗宝石的编号,两个正整数之间用一个空格隔开

输出格式

输出一个整数,表示聪聪在游戏里最多能够收集到的宝石数量

样例

输入样例

6 8 
1 2 
2 3 
2 4 
2 5 
2 6 
3 4 
4 5 
6 5

输出样例

3