P0438

[HNOI2006]超级英雄Hero

[HNOI2006]超级英雄Hero

现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。

主持人准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个「锦囊妙计」,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。

这里,我们把规则稍微改变一下。假设主持人总共有 mm 道题,选手有 nn 种不同的「锦囊妙计」。主持人规定,每道题都可以从两种「锦囊妙计」中选择一种,而每种「锦囊妙计」只能用一次。我们又假设一道题使用了它允许的锦囊妙计后,就一定能正确回答,顺利进入下一题。

现在我来到了节目现场,可是我实在是太笨了,以至于一道题也不会做,每道题只好借助使用「锦囊妙计」来通过。如果我事先就知道了每道题能够使用哪两种「锦囊妙计」,那么你能告诉我怎样选择才能通过最多的题数吗?

输入格式

第一行是两个正整数 nn 和 mm,表示总共有 nn 种「锦囊妙计」,编号为 0∼n−10\sim n-1,总共有 mm 个问题。

以下的 mm 行,每行两个数,分别表示第 ii 个问题可以使用的「锦囊妙计」的编号。

注意,每种编号的「锦囊妙计」只能使用一次,同一个问题的两个「锦囊妙计」可能一样。

输出格式

一行一个整数,为最多能通过的题数 pp。

样例输入

5 6
3 2
2 0
0 3
0 4
3 2
3 2

样例输出

4

数据范围

  • 0<n<10010<n<1001;
  • 0<m<10010<m<1001。

来源与许可

本题为 HNOI 2006 试题「超级英雄Hero」,题面与测试数据整理自 BZOJ 1191。

样例 1

输入

5 6
3 2
2 0
0 3
0 4
3 2
3 2

输出

4