给定一棵有 $n$ 个顶点的树,其中顶点 $r$ 为根节点。如果一个 $n$ 的排列 $p_1, p_2, \dots, p_n$ 满足以下约束,则称其为“好”的排列:
令 $a_x$ 为 $x$ 在排列中的下标(即 $p_{a_x} = x$)。对于所有 $1 \le u, v \le n$,如果顶点 $u$ 是顶点 $v$ 在树中的祖先,则 $a_u < a_v$。
定义一个排列的得分为 $\sum_{i=1}^{n-1} |p_i - p_{i+1}|$,其中 $|x|$ 表示 $x$ 的绝对值。计算所有不同的好排列的得分之和。
输入格式
每个测试文件中仅包含一组测试数据。
第一行包含两个整数 $n$ 和 $r$ ($2 \le n \le 200, 1 \le r \le n$),分别表示树的大小和根节点。
接下来的 $(n - 1)$ 行,第 $i$ 行包含两个整数 $u_i$ 和 $v_i$ ($1 \le u_i, v_i \le n$),表示树中连接顶点 $u_i$ 和 $v_i$ 的一条边。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示所有不同的好排列的得分之和。由于答案可能很大,请输出答案对 $(10^9 + 7)$ 取模的结果。
样例
样例输入 1
4 2 1 2 2 3 1 4
样例输出 1
15
样例输入 2
3 1 1 2 2 3
样例输出 2
2
说明
对于第一个样例测试数据,共有三个好排列:$\{2, 1, 3, 4\}$,$\{2, 1, 4, 3\}$ 和 $\{2, 3, 1, 4\}$。它们的得分分别为 $4, 5$ 和 $6$,因此答案为 $4 + 5 + 6 = 15$。
对于第二个样例测试数据,只有一个好排列:$\{1, 2, 3\}$。它的得分为 $2$。