AT_agc069_d [AGC069D] Tree and Intervals
Description
[problemUrl]: https://atcoder.jp/contests/agc069/tasks/agc069_d
整数 $ N $ と素数 $ P $ が与えられます。
頂点に $ 1 $ から $ N $ までの番号がついた $ N $ 頂点の木に対し、$ i\ (1\ \leq\ i\ \leq\ N-1) $ 番目の辺が結ぶ頂点の番号を $ a_i,\ b_i $ とします。また、$ x_j\ (1\ \leq\ j\ \leq\ N-1) $ を次のように定めます。
- $ \min(a_i,b_i)\ \leq\ j\ \lt\ \max(a_i,b_i) $ を満たす整数 $ i\ (1\ \leq\ i\ \leq\ N-1) $ の個数
$ (x_1,x_2,\ \ldots,x_{N-1}) $ としてあり得るものの個数を $ P $ で割った余りを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ P $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 500 $
- $ 10^8\ \leq\ P\ \leq\ 10^9 $
- $ P $ は素数
### Sample Explanation 1
$ 3 $ 頂点の木は、頂点同士は番号で区別して辺同士は区別しないことにすると $ 3 $ 個あります。 それぞれに対応する $ (x_1,x_2) $ は $ (1,1),(2,1),(1,2) $ であり、期待される出力は $ 3 $ を $ P=998244353 $ で割った余りになります。
### Sample Explanation 2
$ P $ で割った余りを求めてください。