#3905. 圆桌骑士

圆桌骑士

题目描述

国王有时会在圆桌上召开骑士会议。

由于骑士的数量很多,所以每个骑士都前来参与会议的情况非常少见。

通常只会有一部分骑士前来参与会议,而其余的骑士则忙着在全国各地做英勇事迹。

骑士们都争强好胜,好勇斗狠,经常在会议中大打出手,影响会议的正常进行。

现在已知有若干对骑士之间互相憎恨。

为了会议能够顺利的召开,每次开会都必须满足如下要求:

  • 相互憎恨的两个骑士不能坐在相邻的两个位置。
  • 为了让投票表决议题时都能有结果(不平票),出席会议的骑士数必须是奇数。
  • 参与会议的骑士数量不能只有 1 名。

如果前来参加会议的骑士,不能同时满足以上三个要求,会议会被取消。

如果有某个骑士无法出席任何会议,则国王会为了世界和平把他踢出骑士团。

现在给定骑士总数 nn,以及m m 对相互憎恨的关系,求至少要踢掉多少个骑士。

输入格式

输入包含多组测试用例。

对于每个用例,第一行包含两个整数 nnm m

接下来 mm 行,每行包含两个整数 aa bb,表示骑士 aa 和骑士 bb 相互憎恨。

当遇到某行为 0 0 时表示输入终止。

输出格式

每个测试用例输出一个整数,表示结果。

每个结果占一行。

样例

5 5
1 4
1 5
2 5
3 4
4 5
0 0
2

数据范围

n1000,m106n≤1000,m≤10^6

来源

  • ICPC CERC2005
  • POJ2942
  • 算法竞赛进阶指南