# 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< y:x,y = y,x if x != 1 and y != n: if y-x == 1: print(0) else: step = y - 1 - (x+1) - 3 jump = 1 ans = 1 now = 1 while step >= 0: bunsi = (step+1) * (step+2)* (step+3) bunbo = jump * (step+jump+1)*(step+jump+2) now *= bunsi*pow(bunbo,mod-2,mod) now %= mod ans += now ans %= mod step -= 3 jump += 1 print(ans % mod) elif x == 1: step = y-1-3 jump = 1 ans = 1 now = 1 while step >= 0: bunsi = (step + 1) * (step + 2) * (step + 3) bunbo = jump * (step + jump + 1) * (step + jump + 2) now *= bunsi * pow(bunbo, mod - 2, mod) now %= mod ans += now ans %= mod step -= 3 jump += 1 print(ans % mod) else: step = n-x-3 jump = 1 ans = 1 now = 1 while step >= 0: bunsi = (step + 1) * (step + 2) * (step + 3) bunbo = jump * (step + jump + 1) * (step + jump + 2) now *= bunsi * pow(bunbo, mod - 2, mod) now %= mod ans += now ans %= mod step -= 3 jump += 1 print(ans % mod)