#1908. 收集宝石

收集宝石

题目描述

聪聪在玩冒险岛游戏,为了召唤法力更强大的神龙,他必须尽可能收集更多的魔法宝石,每颗宝石都有不同的功效。不过在游戏里,几乎每一颗魔法宝石都会和另外一颗宝石相冲。相冲表示这两颗宝石不能同时拥有。例如,宝石AA和宝石BB相冲,那么,你可以选择两颗宝石都不收集,也可以只收集宝石AA或者只收集宝石BB,但不能同时拥有宝石AA和宝石BB

现在给定了游戏里宝石的数量N(2N100)N(2 \le N \le100),宝石从11NN依次编号,并给出MM对(2M20002 \le M \le 2000)相冲的宝石编号,请帮聪聪计算出最多能够收集到多少颗宝石。

例如:N=6,M=8N=6,M=8时,66颗宝石的编号分别为1,2,3,4,5,61,2,3,4,5,6,其中有88对相冲的宝石,对应编号如下:

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

这表示宝石11和宝石22相冲,宝石22和宝石3,4,5,63,4,5,6都相冲,宝石33和宝石44相冲,宝石44和宝55相冲,宝石55和宝66相冲。

有三个方案收集到的宝石数量最多:(1 3 5)(1 3 6)(1 4 6)(1 \ 3 \ 5)、 (1 \ 3 \ 6)、(1 \ 4 \ 6),这些方案里,最多收集到的宝石数量都是33,所以程序输出33

输入格式

第一行输入两个正整数NNM(2N1002M2000)M(2 \le N \le 100,2 \le M \le 2000),分别表示游戏里的宝石数量和MM对相冲的宝石,两个正整数之间用一个空格隔开;

接下来输入MM行,每行两个正整数,分别表示相冲的两颗宝石的编号,两个正整数之间用一个空格隔开。

输出格式

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

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