在一个 $n$ 个点 $m$ 条边的图上,点的标号是 $1,2,\cdots,n$,第 $i$ 条边连接的是 $a_i$ 和 $b_i$。
一个点的子集被称为好的,当且仅当子集中的任意两点都能仅通过子集中的点联通。
我们现在想要知道有多少个好的子集,对 $2$ 取模。
输入格式
第一行两个整数 $n,m$。
接下来 $m$ 行,每行两个整数 $a_i,b_i$ 。
输出格式
一个整数,表示好的子集个数对 $2$ 取模的结果。
样例一
input
3 2 1 2 2 3
output
0
样例二
input
3 3 1 2 2 3 3 1
output
1
限制与约定
Subtask1(30分):$1 \leq n \leq 18,0 \leq m \leq \frac{n(n-1)}{2},1 \leq a_i,b_i \leq n, 0 < |a_i-b_i| \leq 13$;
Subtask2(30分):$1 \leq n \leq 50,0 \leq m \leq \frac{n(n-1)}{2},1 \leq a_i,b_i \leq n, 0 < |a_i-b_i| \leq 8$;
Subtask3(40分):$1 \leq n \leq 50,0 \leq m \leq \frac{n(n-1)}{2},1 \leq a_i,b_i \leq n, 0 < |a_i-b_i| \leq 13$。
时间限制:1s
空间限制:512MB