#abc228e. [abc228_e]Integer Sequence Fair

[abc228_e]Integer Sequence Fair

問題文

整数列を一堂に集めてその優劣を定める、整数列品評会が行われます。 品評会では、11 以上 KK 以下の整数からなる長さ NN の整数列すべてが審査対象となり、 審査対象の数列それぞれに対して 11 以上 MM 以下の整数の点数をつけます。

「審査対象の数列それぞれに対して 11 以上 MM 以下の整数の点数をつける方法」が何通りあるかを 998244353998244353 で割ったあまりを出力してください。

ただし、22 つの方法が異なるとは「審査対象となるある数列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N) が存在して、 AA に対してつける点数が 22 つの方法で異なる」ことを言います。

制約

  • 1leqN,K,Mleq10181 \\leq N, K, M \\leq 10^{18}
  • N,K,MN, K, M は整数

入力

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

NN KK MM

出力

「審査対象の数列それぞれに対して 11 以上 MM 以下の整数の点数をつける方法」が何通りあるかを 998244353998244353 で割ったあまりを出力せよ。


入力例 1

2 2 2

出力例 1

16

審査対象となる数列は、(1,1),(1,2),(2,1),(2,2)(1, 1), (1, 2), (2, 1), (2, 2)44 つです。「審査対象の数列それぞれに対して 11 以上 22 以下の整数の点数をつける方法」は、以下の 1616 通りあります。

  • (1,1)(1, 1)11 点、(1,2)(1, 2)11 点、(2,1)(2, 1)11 点、(2,2)(2, 2)11 点をつける方法
  • (1,1)(1, 1)11 点、(1,2)(1, 2)11 点、(2,1)(2, 1)11 点、(2,2)(2, 2)22 点をつける方法
  • (1,1)(1, 1)11 点、(1,2)(1, 2)11 点、(2,1)(2, 1)22 点、(2,2)(2, 2)11 点をつける方法
  • (1,1)(1, 1)11 点、(1,2)(1, 2)11 点、(2,1)(2, 1)22 点、(2,2)(2, 2)22 点をつける方法
  • cdots\\cdots
  • (1,1)(1, 1)22 点、(1,2)(1, 2)22 点、(2,1)(2, 1)22 点、(2,2)(2, 2)22 点をつける方法

よって、1616 を出力します。


入力例 2

3 14 15926535

出力例 2

109718301

998244353998244353 で割ったあまりを出力することに注意してください。