# import sys # input = sys.stdin.readline # import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') def mp():return map(int,input().split()) def lmp():return list(map(int,input().split())) def mps(A):return [tuple(map(int, input().split())) for _ in range(A)] def stoi(LIST):return list(map(int,LIST)) def itos(LIST):return list(map(str,LIST)) def bitA(X,A):return X & 1<= 0: bunsi = md[u-2*jump] bunbo = (md[u-3*jump]*md[jump]) ans += bunsi*pow(bunbo,mod-2,mod) step -= 3 jump += 1 ans %= mod #print(ans) print(ans) n,x,y = mp() md = [1] for i in range(1,n+5): md.append(md[-1]*i%mod) if x > y:x,y = y,x if x != 1 and y != n: if y-x == 1: print(0) else: calc(y-1-(x+1)) elif x == 1 and y == n:calc(y-x) else:calc(y-x-1)