Randias 得到了一棵有 $n$ 个顶点的树。他重复执行以下操作,直到树中不包含任何顶点:
- 选择一个作为任意直径端点的顶点,并将其移除。
他请你求出移除顶点的顺序数量,结果对 $10^9 + 7$ 取模。
注意,当且仅当存在某个 $i$ ($1 \le i \le n$),使得两种顺序中第 $i$ 个被移除的顶点不同时,这两种顺序被视为不同。
回想一下,如果存在一个顶点 $v$,使得对于任意顶点对 $i$ 和 $j$,都有 $\text{dis}(u, v) \ge \text{dis}(i, j)$,则称顶点 $u$ 为某条直径的端点,其中 $\text{dis}(x, y)$ 表示从 $x$ 到 $y$ 的最短路径上的边数。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 300$),表示树的顶点数。
接下来的 $n - 1$ 行,每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le n, u \neq v$),表示连接 $u$ 和 $v$ 的一条边。
保证给定的边构成一棵树。
输出格式
输出一个整数,表示移除顶点的顺序数量,对 $10^9 + 7$ 取模。
样例
样例输入 1
3 1 2 3 2
样例输出 1
4
样例输入 2
5 4 1 4 5 1 2 1 3
样例输出 2
28
样例输入 3
7 5 7 2 5 2 1 1 6 3 6 4 1
样例输出 3
116
说明
对于第一个样例,$[1, 2, 3], [1, 3, 2], [3, 1, 2], [3, 2, 1]$ 是可能的移除顺序。