import sys,random,bisect from collections import deque,defaultdict,Counter from heapq import heapify,heappop,heappush from itertools import cycle, permutations from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) def cmb(n, r, mod): if ( r<0 or r>n ): return 0 return (g1[n] * g2[r] % mod) * g2[n-r] % mod mod = 998244353 N = 2*10**5 g1 = [1]*(N+1) g2 = [1]*(N+1) inverse = [1]*(N+1) for i in range( 2, N + 1 ): g1[i]=( ( g1[i-1] * i ) % mod ) inverse[i]=( ( -inverse[mod % i] * (mod//i) ) % mod ) g2[i]=( (g2[i-1] * inverse[i]) % mod ) inverse[0]=0 N,K,X = mi() if N==1: exit(print(0)) K -= 1 X -= 1 res = 0 for i in range(N-1): if i < K: right = N-1-i-1 inv = (g1[N-1] * inverse[2] % mod) * right % mod + (N-1-X) * g1[N-2] % mod inv %= mod res += inv * g1[N-1-i] % mod res %= mod elif K < i: right = N-1-i inv = (g1[N-1] * inverse[2] % mod) * right % mod res += inv * g1[N-1-i] % mod res %= mod else: right = N-1-i inv = X * (g1[N-2] * right % mod) % mod res += inv * g1[N-1-i] % mod res %= mod print(res)