正整数 \(A, B, K\) および素数 \(P\) が与えられます。
\(A\) 個の \(0\) と \(B\) 個の \(1\) からなる長さ \(A+B\) の \(01\) 列を \(K\) 個作り、それらを \(x_1, x_2, \dots, x_K\) とします(順番も区別します)。 あり得るすべての \((x_1, x_2, \dots, x_K)\) に対する以下の値の総和を \(P\) で割ったあまりを求めてください。
入力は以下の形式で標準入力から与えられます。
| \(A~B~K~P\) |
入力は以下の制約をすべて満たします。
答えを \(1\) 行で出力してください。
以下の追加制約を満たすデータセットに正解した場合、部分点が与えられます。
3 1 2 998244353
72
13 17 25 1000000007
900218392
37 100 31415 1000000009
580724348
\(1\) つ目のテストケースについて、\((x_1, x_2) = (0010, 0100)\) のとき、下記より \(S = 00010100\) は条件を満たすことがわかります。