【题目背景】
(本题的题面与题目名称没有任何联系, 恰如现在的我们与丝之歌没有任何联系。)
I love you it’s ruining my life
Another fortnight lost in America
【题目描述】
度过了梦幻的两周, 生活支离破碎, 烟草的香味, 一望无际的薰衣草, 绿水或者青 山, 诗人卡芙米已无法分别梦与现实。似是若非的飘渺感一直在她身边, 现在她正漫步 在 California 寻找新的灵感。
California 可以被抽象为 $n$ 个点 $m$ 条边的无向图,其中可能包含重边与自环。现 在她希望知道有多少种方案选出一些边,使得这些边可以覆盖所有点。称点 $u$ 被某种方案覆盖,当且仅当其中存在至少一条边,使得此边的一个端点为 $u$。两个方案被视为不同的,当且仅当存在一条边,其在一种方案中被选中,在另一种方案中没有被选中。特别地,重边被视为不同的边。
【输入格式】
从文件 silksong.in 中读入数据。 第一行两个正整数 $n, m$。 接下来 $m$ 行每行两个正整数 $u,v$,表示一条边。
【输出格式】
输出到文件 silksong. out 中。 一行一个非负整数,表示好的集合的个数对 $10^9 + 7$ 取模后的值。
【样例 1 输入】
3 3
1 2
2 3
1 3
【样例 1 输出】
4
【样例 1 解释】
好的集合有以下四个:
- ${(1, 2), (2, 3)}$;
- ${(1, 2), (1, 3)}$;
- ${(2, 3), (1, 3)}$;
- ${(1, 2), (2, 3), (1, 3)}$。
【样例 2 输入】
4 5
1 2
2 3
3 4
1 4
1 3
【样例 2 输出】
16
【数据范围】
对于所有测试点: $1 \le n \le 40, 1 \le m \le 60$。图中可能包含重边与自环。