3 3 1
 300 2 300
 4000 4000 1
 4000 4000 100
 4 2 3
 3 300 300
 4000 100 4000
 3 300 1
 300 300 1
 4000 1000 3000
 3 2 4000
 4 3 2
 3 2 300
 4000 3998 2
 100 200 300
 300 300 300
 3 3 3
 10 10 10
 10 4 9
 239 300 231
 4000 2 3998
 200 100 300
 4000 2000 2000
 4000 4000 4000
 10 7 5
 4000 100 3900
 3 4000 4000

12
 775907030
 63263244
 994443885
 24
 496527918
 908339579
 828107078
 775907030
 876839920
 938379934
 48
 196174631
 296557186
 316471646
 375912430
 72
 318389383
 135283173
 774612666
 686088712
 949581532
 310481606
 997463324
 130636800
 221262673
 680114446

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

int n,w,b;
#define mod 1000000009
#define max_size 1000009
__int64 fac[max_size+1];
__int64 big_mod(__int64 i,__int64 j)
{
    if(j==0)return 1;
    __int64 x=big_mod(i,j>>1);
    x=(x*x)%mod;
    if(j&1)return (x*i)%mod;
    return x;
}


__int64 ncr(int i,int j)
{
    return (((fac[i]*big_mod(fac[j],mod-2))%mod)*big_mod(fac[i-j],mod-2))%mod;
}

void fac_gen()
{
    fac[0]=1;
    for(int i=1;i<=max_size;i++)
        fac[i]=(fac[i-1]*i)%mod;

}

int main()
{
//    freopen("C_in.txt","r",stdin);
    cin>>n>>w>>b;
    fac_gen();
    __int64 res=1;
    res=(res*fac[w])%mod;
    res=(res*fac[n-2])%mod;
    res=(res*fac[b])%mod;
    cout<<res<<endl;
    return 0;
}
