
const val MOD = 1000000007L
fun main(args: Array<String>) {
    val (n, a, b) = getLongs()

    val coma = comb(n, a)
    val comb = comb(n, b)
    val out = (pow(2L, n) - 1 - coma - comb) % MOD
    println((out + MOD) % MOD)
}
fun pow(base: Long, exp: Long): Long {
    return when {
        exp == 0L -> 1L
        exp == 1L -> base
        exp % 2 == 1L -> base * pow(base, exp - 1) % MOD
        else -> pow(base, exp / 2).let { it * it } % MOD
    }
}
fun comb(n: Long, k: Long): Long {
    var i = n - k + 1
    var fn = 1L
    while (i <= n) {
        fn = fn * i % MOD
        i++
    }
    i = 1
    var fk = 1L
    while (i <= k) {
        fk = fk * i % MOD
        i++
    }
    return fn * inv(fk) % MOD
}

fun inv(n: Long): Long {
    return pow(n, MOD - 2)
}

fun getInt() = readLine()!!.toInt()
fun getInts() = readLine()!!.split(" ").map { it.toInt() }
fun getLong() = readLine()!!.toLong()
fun getLongs() = readLine()!!.split(" ").map { it.toLong() }

