AT_jsc2021_g Spanning Tree

Description

[problemUrl]: https://atcoder.jp/contests/jsc2021/tasks/jsc2021_g $ N $ 頂点のグラフ $ G $ があり、頂点には $ 1,\ 2,\ \dots,\ N $ の番号がついています。はじめ、$ G $ には辺がありません。 これから $ G $ に何本か無向辺を追加します。ただし、辺を追加し終わった後、任意の $ i,\ j\,(i\ ≠\ j) $ について以下の条件を満たす必要があります。 - $ A_{i,\ j}\ =\ 1 $ のとき、頂点 $ i $ と頂点 $ j $ を直接結ぶ辺が存在する。 - $ A_{i,\ j}\ =\ 0 $ のとき、頂点 $ i $ と頂点 $ j $ を直接結ぶ辺が存在しない。 - $ A_{i,\ j}\ =\ -1 $ のとき、どちらでもよい。 辺を追加し終わった後の $ G $ としてあり得るもののうち、木であるものはいくつあるでしょうか? ただし、答えは非常に大きくなることがあるので、答えを $ (10^9\ +\ 7) $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_{1,\ 1} $ $ \cdots $ $ A_{1,\ N} $ $ \vdots $ $ A_{N,\ 1} $ $ \cdots $ $ A_{N,\ N} $

Output Format

答えを $ (10^9\ +\ 7) $ で割った余りを出力せよ。

Explanation/Hint

### 制約 - 入力は全て整数 - $ 2\