func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long mod = 1e9 + 9;   long long c[4005][4005];   void getc() {     memset(c, 0, sizeof(c));     c[0][0] = 1;     for (int i = 1; i < 4001; i++) {       c[i][0] = 1;       for (int j = 1; j <= i; j++) {         c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;       }     }   }   long long a[4005];   void geta() {     a[0] = 1;     a[1] = 1;     for (long long i = 2; i <= 4000; i++) a[i] = a[i - 1] * i % mod;   }   int main() {     getc();     geta();     int n, w, b;     while (scanf( %d%d%d , &n, &w, &b) == 3) {       int x = max(1, n - w), y = min(b, n - 2);       long long ans = 0;       for (int i = x; i <= y; i++) {         ans = (ans +                c[b - 1][i - 1] * c[w - 1][n - i - 1] % mod * (n - i - 1) % mod) %               mod;       }       ans = ans * a[w] % mod * a[b] % mod;       printf( %lld n , ans);     }     return 0;   }   