#include <bits/stdc++.h>
using namespace std;
long long n, w, b, s, W, B, ans, c[4005][4005];
long long C(int x, int y) {
  if (c[x][y]) {
    return c[x][y];
  }
  if (y == 0) {
    return c[x][y] = 1;
  }
  return c[x][y] =
             ((x - 1 >= y ? C(x - 1, y) : 0) + C(x - 1, y - 1)) % 1000000009;
}
int main() {
  scanf("%lld%lld%lld", &n, &w, &b);
  W = B = 1;
  for (long long i = 1; i <= w; i++) {
    W *= i;
    W %= 1000000009;
  }
  for (long long i = 1; i <= b; i++) {
    B *= i;
    B %= 1000000009;
  }
  for (long long i = max((long long)1, n - w); i <= b && i != n - 1; i++) {
    ans = (ans + C(b - 1, i - 1) * B % 1000000009 * C(w - 1, n - i - 1) %
                     1000000009 * (n - i - 1) % 1000000009 * W % 1000000009) %
          1000000009;
  }
  printf("%lld\n", ans);
  return 0;
}
