AT_KeioPC2025_l Many Max Streak Problems

Description

連勝数に興味のあるけむにく君は以下の問題を作りました。 > **Max Streak Problem** > > 正整数 $ N, M $ と長さ $ N $ の数列 $ W, L $ が与えられます。 > > $ W_i = x $ であるような $ i \ (1 \le i \le N) $ であって「 $ i \lt j \le N $ かつ $ L_j = x $ であるような $ j $ が存在しない」 $ i $ の個数を $ f(x) $ とします。 > このとき $ \displaystyle \max_{1 \le x \le M} f(x) $ を求めてください。 > > ただし、与えられる数列 $ W, L $ について $ 1 \le W_i, L_i \le M $ および $ W_i \ne L_i $ が成立することが保証されます。 しかし、はるるん君はこの問題を簡単すぎると感じたため、次の問題を考えました。 > **Many Max Streak Problems** > > 長さが $ N $ の数列 $ W, L $ の組であって **Max Streak Problem** の入力として考えられるものは、すべてで $ \big ( M \times (M - 1) \big ) ^ N $ 通りあります。 > それらすべてについての **Max Streak Problem** の答えの総和を $ P $ で割ったあまりを求めてください。 **Many Max Streak Problems** を解いてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N \ M \ P $

Output Format

答えを出力せよ。

Explanation/Hint

### 部分点 この問題には部分点が設定されている。 - $ N, M \le 30 $ を満たすデータセットに正解した場合 $ 1 $ 点が与えられる。 ### Sample Explanation 1 **Max Streak Problem** の入力としてありうる $ (W, L) $ は以下の $ 4 $ 通りです。 - $ ((1, 1),(2, 2)) $ のとき、答えは $ 2 $ - $ ((1, 2),(2, 1)) $ のとき、答えは $ 1 $ - $ ((2, 1),(1, 2)) $ のとき、答えは $ 1 $ - $ ((2, 2),(1, 1)) $ のとき、答えは $ 2 $ となるため、答えは $ 6 $ となります。 ### Constraints - $ 1 \le N \le 300 $ - $ 2 \le M \le 300 $ - $ 10^8 \le P \le 10^9 $ - $ P $ は素数 - 入力はすべて整数