val MOD = 1000000007L

fun main(args : Array<String>) {
    val (n, a, b) = readLine()!!.split(" ").map { it.toLong() }

    val all = modPow(2L, n, MOD) - 1L
    val nCa = modComb(n, a, MOD)
    val nCb = modComb(n, b, MOD)

    val tmp = (nCa + nCb)%MOD

    if (all < tmp) {
        println((all-tmp)%MOD+MOD)
    } else {
        println(all-tmp)
    }
}

fun modPow(base: Long, p: Long, m: Long): Long {
    return when {
        p == 0L -> 1L
        p == 1L -> base
        p % 2L == 0L -> modPow(base, p / 2L, m).let { it*it%m }
        else -> base * modPow(base, p - 1L, m) % m
    }
}

fun modComb(n: Long, k: Long, m: Long): Long {
    if (n < k) return 0L
    val kk = Math.min(k, n-k)

    var n1 = 1L
    for (i in 1..kk) {
        n1 *= (n-i+1)
        n1 %= m
    }

    var n2 = 1L
    for (i in 1..kk) {
        n2 *= i
        n2 %= m
    }

    return n1 * modInv(n2, m) % m
}

fun modInv(n: Long, m: Long): Long {
    return modPow(n, m-2, m)
}