import Data.Bits
import qualified Data.Vector as V
main=print.solve.map read.words=<<getLine
solve[n,a,b]=(g 1 2 n-1-c V.! a-c V.! b+3*m)`mod`m where
  k=max a b+1
  c=V.generate k$ \i-> if i<1 then 1 else c V.!(i-1)*(n+1-i)`mod`m*v V.! i`mod`m
  v=V.generate k$ \i-> if i<2 then 1 else v V.!(m`mod`i)*(m-m`div`i)`mod`m
g r x n
  |n==0=r
  |otherwise=g t(x*x`mod`m)(shiftR n 1)
  where t=if n .&. 1==0 then r else r*x`mod`m
m=10^9+7