#!ruby -na n,m=$F.map &:to_i e=->n{t=1;(1..n).map{|i|t*=i};t} f=->n{n<2?1:1&n<0?2**n*f[n]*g[n-1]:n*f[n-1]} p f[n]%m