← Home
package main

import (
	"fmt"
)

const MOD = 1000000009

func power(base, exp int64) int64 {
	res := int64(1)
	base %= MOD
	for exp > 0 {
		if exp%2 == 1 {
			res = (res * base) % MOD
		}
		base = (base * base) % MOD
		exp /= 2
	}
	return res
}

func modInverse(n int64) int64 {
	return power(n, MOD-2)
}

func main() {
	var n, w, b int
	if _, err := fmt.Scan(&n, &w, &b); err != nil {
		return
	}

	maxVal := 5000
	fact := make([]int64, maxVal)
	inv := make([]int64, maxVal)

	fact[0] = 1
	inv[0] = 1
	for i := 1; i < maxVal; i++ {
		fact[i] = (fact[i-1] * int64(i)) % MOD
	}
	inv[maxVal-1] = modInverse(fact[maxVal-1])
	for i := maxVal - 2; i >= 1; i-- {
		inv[i] = (inv[i+1] * int64(i+1)) % MOD
	}

	C := func(N, R int) int64 {
		if R < 0 || R > N || N < 0 {
			return 0
		}
		return fact[N] * inv[R] % MOD * inv[N-R] % MOD
	}

	total := int64(0)
	for k := 2; k <= n-1; k++ {
		term1 := C(w-1, k-1)
		term2 := C(b-1, n-k-1)
		term := (term1 * term2) % MOD
		term = (term * int64(k-1)) % MOD
		total = (total + term) % MOD
	}

	total = (total * fact[w]) % MOD
	total = (total * fact[b]) % MOD

	fmt.Println(total)
}