MOD = 998244353 def modinv(x): return pow(x, MOD - 2, MOD) def setup_comb(n): fac = [1] * (n + 1) ifac = [1] * (n + 1) for i in range(2, n + 1): fac[i] = fac[i - 1] * i % MOD ifac[n] = modinv(fac[n]) for i in range(n, 0, -1): ifac[i - 1] = ifac[i] * i % MOD return fac, ifac def binom(n, k, fac, ifac): if k < 0 or k > n: return 0 return fac[n] * ifac[k] % MOD * ifac[n - k] % MOD def matmul(a, b): n, m, l = len(a), len(b[0]), len(b) res = [[0] * m for _ in range(n)] for i in range(n): for k in range(l): aik = a[i][k] if aik == 0: continue for j in range(m): res[i][j] = (res[i][j] + aik * b[k][j]) % MOD return res def matpow(mat, power): size = len(mat) res = [[1 if i == j else 0 for j in range(size)] for i in range(size)] while power: if power & 1: res = matmul(res, mat) mat = matmul(mat, mat) power >>= 1 return res def solve(k, l, r): fac, ifac = setup_comb(k + 10) size = k + 4 m = [[0] * size for _ in range(size)] for i in range(size): if i == 0: m[0][0] = k m[0][1] = 1 m[0][k + 2] = 1 elif 1 <= i <= k + 1: top = k - (i - 1) for j in range(i, k + 2): m[i][j] = binom(top, k + 1 - j, fac, ifac) elif i == k + 2: m[i][k + 2] = k elif i == k + 3: m[i][0] = 1 m[i][i] = 1 ml = matpow(m, l) mr = matpow(m, r + 1) ans = ( mr[k + 3][0] + mr[k + 3][k + 1] + mr[k + 3][k + 2] - ml[k + 3][0] - ml[k + 3][k + 1] - ml[k + 3][k + 2] ) % MOD print(ans) k, l, r = map(int, input().split()) solve(k, l, r)