順位付け

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

イクタ君の住む町にはNN個の塔がある。 それぞれの塔には0からN1N-1までの異なる番号が与えられており、番号iiの塔を塔iiと呼ぶ。 好奇心旺盛なイクタ君はNN個の塔の高さに興味を持ち、それらの大小関係を表す表TTを作ることにした。 TTN×NN \times N個の要素を持ち、各要素T_i,j(0i,jN1)T\_{i, j} (0 \leq i, j \leq N - 1)は次のように定義される。

  • T_i,j=1iの高さが塔jの高さより小さいT\_{i, j} = -1⇔ 塔iの高さが塔jの高さより小さい

  • T_i,j=0iの高さと塔jの高さが等しいT\_{i, j} = 0 ⇔ 塔iの高さと塔jの高さが等しい

  • T_i,j=1iの高さが塔jの高さより大きいT\_{i, j} = 1 ⇔ 塔iの高さが塔jの高さより大きい

イクタ君は表TTを作成するための調査として、2つの塔を選びそれらの高さを比較するということをN1N-1回繰り返した。

イクタ君の調査に関して以下のことがわかっている。

  • ii回目の比較(1i N1)(1 \leq i \leq \ N - 1)で塔a_ia\_{i}, 塔b_ib\_{i}が選ばれたとすると塔a_ia\_{i}の高さが塔b_ib\_{i}の高さより大きかった。つまりT_a_i,b_i=1T\_{a\_{i}, b\_{i}} = 1, T_b_i,a_i=1T\_{b\_{i}, a\_{i}} = -1であった。

  • それぞれの塔は自分自身よりも大きな塔とは高々一回しか比較されていない。

残念ながらイクタ君の調査による情報だけで表TTの内容を一意に決めることができるとは限らない。 表TTがイクタ君の調査と矛盾せず、TTが定義されるような塔の高さの組み合わせが存在するときTTを正しい表と呼ぶことにする。 正しい表として何通りのものが考えられるかを計算してイクタ君に教えて欲しい。

ただし、比較された2つの塔の高さは互いに異なるがすべての塔の高さが互いに異なるとは限らない。

입력

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

NN

a_1a\_{1} b_1b\_{1}

...

a_N1a\_{N-1} b_N1b\_{N-1}

NNは塔の数を表す。 a_ia\_{i}, b_ib\_{i} (1iN11 \leq i \leq N - 1)は塔a_ia\_{i}が塔b_ib\_{i}より高いことを表す。

출력

考えられる正しい表Tの個数の数を1,000,000,007で割ったあまりを出力せよ。

제한

入力中の各変数は以下の制約を満たす。

  • 1N2001 \leq N \leq 200

  • 0a_i,b_i<N0 \leq a\_{i}, b\_{i} < N

  • a_ib_ia\_{i} \neq b\_{i}

  • 異なる塔が同じ高さであることもある。

  • イクタ君の調査結果自体が矛盾していることはなく、少なくとも1つイクタ君の調査結果と矛盾しない表TTが存在する。