#include <bits/stdc++.h>
using namespace std;
int n, w, b;
long long fact[4096], inv[4096];
long long quick_pow(long long a, int k) {
  int ans = 1;
  while (k > 0) {
    if (k & 1) ans = (ans * a) % 1000000009;
    k >>= 1;
    a = (a * a) % 1000000009;
  }
  return ans % 1000000009;
}
void init() {
  fact[0] = 1;
  inv[0] = 1;
  for (int i = 1; i < 4096; i++) {
    fact[i] = fact[i - 1] * i % 1000000009;
    inv[i] = quick_pow(fact[i], 1000000009 - 2);
  }
}
long long C(int M, int N) {
  if (M > N) return 0;
  return inv[M] * fact[N] % 1000000009 * inv[N - M] % 1000000009;
}
void work() {
  long long ans = 0;
  for (int i = 2; i < n; i++) {
    for (int j = i; j < n; j++) {
      int x = C(j - i, b - 1), y = C(n - (j - i + 1) - 1, w - 1);
      ;
      ;
      ans =
          (ans + C(j - i, b - 1) * C(n - (j - i + 1) - 1, w - 1) % 1000000009) %
          1000000009;
    }
  }
  cout << ans * fact[w] % 1000000009 * fact[b] % 1000000009 << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> w >> b;
  init();
  work();
  return 0;
}
