import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.List
import qualified Data.Vector as V

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine

moduloN :: Int
moduloN = 10 ^ 9 + 7

modN = flip mod moduloN

mulMod x y = modN $ x * y

powerMod x 0 = 1
powerMod x y
    | even y = mulMod t t
    | otherwise = mulMod x $ mulMod t t
    where
        t = powerMod x $ div y 2

plusMod x y = modN $ x + y

minusMod x y | x < y = moduloN + x - y
             | otherwise = x - y

inv n = powerMod n $ moduloN - 2

comb n k | n - k < k = mulMod (foldr mulMod 1 [m+1..n]) . inv $ foldr mulMod 1 [1..n-m]
         | otherwise = mulMod (foldr mulMod 1 [n-m+1..n]) . inv $ foldr mulMod 1 [1..m]

main = do
    [n, a, b] <- getIntList
    print . minusMod ((powerMod 2 n) - 1) $ plusMod (comb n a) (comb n b)