#include <bits/stdc++.h>
using namespace std;
const int MAX = 4010;
const int MOD = 1e9 + 9;
long long f[MAX], finv[MAX], inv[MAX];
void init() {
  f[0] = inv[0] = inv[1] = finv[0] = finv[1] = f[1] = 1;
  for (int i = 2; i < MAX; ++i) {
    f[i] = f[i - 1] * i % MOD;
    inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD;
    finv[i] = finv[i - 1] * inv[i] % MOD;
  }
}
long long C(int n, int m) {
  if (m < 0 || m > n) return 0;
  return f[n] * finv[n - m] % MOD * finv[m] % MOD;
}
int main(void) {
  init();
  int n, w, b;
  scanf("%d%d%d", &n, &w, &b);
  long long ans = 0;
  for (int i = 1; i <= b && i <= n - 2; ++i) {
    ans = (ans + C(b - 1, i - 1) * f[b] % MOD * C(w - 1, n - i - 1) % MOD *
                     f[w] % MOD * (n - i - 1) % MOD) %
          MOD;
  }
  printf("%lld\n", (ans % MOD + MOD) % MOD);
  return 0;
}
