A - CatCoder Binary Contest Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 700

問題文

非負整数 N,K,X が与えられます。以下の「問題 A'」の答えが X になるような非負整数列 A=(A_1,A_2,\dots,A_N) としてありうるものの個数を 998244353 で割った余りを求めてください。なお、このような A の個数は有限であることが証明できます。

問題 A'

4096 年の CatCoder では、CatCoder Binary Contest(以下、CBC と略します)を開催することになりました。

いま、問題案を持っている writer が N 人います。i 人目の writer は A_i 個の問題案を持っています。

各 CBC では \text{Div.}0, \text{Div.}1, \dots ,\text{Div.}(K-1)K 個の部門を同時に 1 つずつ開催します。\text{Div.}i の開催には同じ writer の問題案が 2^i 個必要です。

ここで、別の部門の writer は必ずしも同じである必要がない点に注意してください。 また、各問題案は高々 1 回の CBC の 1 つの部門にしか使用出来ません。

CBC を最大で何回開催出来るかを求めてください。

制約

  • 1 \le N \le 256
  • 1 \le K \le 256
  • 0 \le X \le 256
  • 入力される値は全て整数

入力

入力は以下の形式で標準入力から与えられる。

N K X

出力

問題 A' の答えが X になるような A の個数を 998244353 で割った余りを出力せよ。


入力例 1

2 2 1

出力例 1

15

問題 A' の答えが 1 になるような AA = (0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(2,1),(2,2),(2,3),(3,0),(3,1),(3,2),(4,0),(4,1),(5,0)15 個です。


入力例 2

2 3 2

出力例 2

126

例えば A = (10,5) のとき、以下のように問題案を使用することにより CBC を 2 回開催出来ます。

Div.0 Div.1 Div.2
1 1 人目の writer の 1 2 人目の writer の 2 1 人目の writer の 4
2 2 人目の writer の 1 2 人目の writer の 2 1 人目の writer の 4

入力例 3

256 255 254

出力例 3

739506516