n , mod = map(int , raw_input().split())
n += 1 ^ (n & 1)
fact = [0] * n
fact[0] = 1
for i in range(1 , n):
fact[i] = (fact[i - 1] * i) % mod
ifact = [0] * n
ifact[n - 1] = pow(fact[n - 1] , mod - 2 , mod)
for i in range(0 , n - 1):
ifact[n - i - 2] = (ifact[n - i - 1] * (n - i - 1)) % mod
def c(n , r):
return (fact[n] * ifact[r] * ifact[n - r]) % mod
def solve(x):
if x == 1:
return 1
res = solve(x >> 1)
res *= res
res %= mod
res *= c(x - 1 , x >> 1)
res %= mod
return res
print solve(n)
biAsIG1vZCA9IG1hcChpbnQgLCByYXdfaW5wdXQoKS5zcGxpdCgpKQpuICs9IDEgXiAobiAmIDEpCmZhY3QgPSBbMF0gKiBuCmZhY3RbMF0gPSAxCmZvciBpIGluIHJhbmdlKDEgLCBuKToKCWZhY3RbaV0gPSAoZmFjdFtpIC0gMV0gKiBpKSAlIG1vZAppZmFjdCA9IFswXSAqIG4KaWZhY3RbbiAtIDFdID0gcG93KGZhY3RbbiAtIDFdICwgbW9kIC0gMiAsIG1vZCkKZm9yIGkgaW4gcmFuZ2UoMCAsIG4gLSAxKToKCWlmYWN0W24gLSBpIC0gMl0gPSAoaWZhY3RbbiAtIGkgLSAxXSAqIChuIC0gaSAtIDEpKSAlIG1vZApkZWYgYyhuICwgcik6CglyZXR1cm4gKGZhY3Rbbl0gKiBpZmFjdFtyXSAqIGlmYWN0W24gLSByXSkgJSBtb2QKZGVmIHNvbHZlKHgpOgoJaWYgeCA9PSAxOgoJCXJldHVybiAxCglyZXMgPSBzb2x2ZSh4ID4+IDEpCglyZXMgKj0gcmVzCglyZXMgJT0gbW9kCglyZXMgKj0gYyh4IC0gMSAsIHggPj4gMSkKCXJlcyAlPSBtb2QKCXJldHVybiByZXMKcHJpbnQgc29sdmUobikg