atcoder#RELAY2I. Nice to Meet You

Nice to Meet You

配点 : 100100

問題文

りんご海に NN 個の島が浮かんでおり、MM 社の業者がこれらの島を結ぶ船便を運行しています。便宜上、これらの島を島 1,1, 2,2, ,\cdots , NN と呼び、これらの業者を業者 11, 22, ,\cdots , MM と呼びます。

りんご海の海流は毎日大きく変わります。業者 ii (1iM)(1 \leq i \leq M) は、その日の海の状況に応じて、島 aia_i から bib_i への便または島 bib_i から aia_i への便のどちらか一方のみを運行します。どちらの方向の便が運行されるかは、それぞれの業者について独立に、等確率で決定されるものとします。

いま、島 11 に高橋くんが、島 22 に低橋くんがいます。MM 社の業者による船便を用いて、高橋くんと低橋くんがその日のうちに同じ島に移動することができる確率を PP とします。ただし、船の所要時間などは無視します。このとき、P×2MP \times 2^M は整数となります。P×2MP \times 2^M109+710^9 + 7 で割ったあまりを求めてください。

制約

  • 2N152 \leq N \leq 15
  • 1MN(N1)/21 \leq M \leq N(N-1)/2
  • 1ai<biN1 \leq a_i < b_i \leq N
  • (ai,bi)(a_i, b_i) はすべて異なる。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

a1a_1 b1b_1

::

aMa_M bMb_M

出力

P×2MP \times 2^M109+710^9 + 7 で割ったあまりを出力せよ。

4 3
1 3
2 3
3 4
6

36cba65088d9b1224a6ce9665aa44048.png

上図に示した 2M=82^M = 8 通りの状況が等確率で発生し、そのうち高橋くんと低橋くんが同じ島で出会える状況は 66 通りです。したがって、P=6/2M,P = 6/2^M, P×2M=6P \times 2^M = 6 となります。

5 5
1 3
2 4
3 4
3 5
4 5
18
6 6
1 2
2 3
3 4
4 5
5 6
1 6
64