#CF95E. E. 幸运国度
E. 幸运国度
E. 幸运国度
每个测试的时间限制: 秒
每个测试的内存限制: MB
Petya 喜欢幸运数字。众所周知,如果一个正整数的十进制表示中只包含数字 和 ,那么这个数就是幸运的。例如,、、 是幸运数字,而 、、 不是。
一天晚上,Petya 在睡觉。他梦见自己成了某个岛国的总统。这个国家由一些岛屿组成,岛屿之间通过双向道路连接。有些岛屿之间没有道路相连,甚至不能通过其他岛屿到达,因此这个国家被划分成若干个区域。更正式地说,每个岛屿恰好属于一个区域,位于同一区域内的任意两个岛屿之间存在一条路径;而位于不同区域的任意两个岛屿之间不存在路径。如果一个区域中的岛屿数量是一个幸运数字,那么这个区域就是幸运的。
作为真正的总统,Petya 首先决定修建一个总统府。作为幸运数字的爱好者,Petya 希望将总统府建在一个幸运区域中。然而,最初这个国家可能不存在这样的区域。在这种情况下,Petya 可以在不同的区域之间修建额外的道路,从而将它们合并。
请找出为了创造一个幸运区域,最少需要修建多少条道路。
输入格式
第一行包含两个整数 和 ()—— 分别表示岛屿的数量和道路的数量。
接下来的 行,每行包含两个整数 和 (),表示一条连接岛屿 和 的道路。
注意:
- 可能存在连接某个岛屿与自身的道路(自环);
- 两个岛屿之间可能有多条道路;
- 每行中的数字之间用一个空格隔开。
输出格式
如果不存在可行方案,输出唯一的数字 (不包含引号)。
否则,输出为了得到一个幸运区域所需修建的最少道路数量 。
示例
输入 #1
4 3
1 2
2 3
1 3
输出 #1
1
输入 #2
5 4
1 2
3 4
4 5
3 5
输出 #2
-1