#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
using namespace std;
typedef __int64 LL;
const LL mod = ;
LL cnm[][];
LL dp[][]; void prepare()
{
LL i,j;
for(i=;i<=;i++)
{
cnm[][i]=;
cnm[i][]=;
}
for(i=;i<=;i++)
{
for(j=;j<=i&&j<=;j++)
{
if(i==j) { cnm[i][j]=;continue;}
if(j==) { cnm[i][j]=i;continue;}
cnm[i][j]=(cnm[i-][j]+cnm[i-][j-])%mod;
}
}
dp[][]=;
for(i=;i<=;i++)
for(j=;j<=;j++)
dp[i][j]=(dp[i-][j-]+((i-)*dp[i-][j])%mod)%mod;
}
int main()
{
LL n,a,b,cur;
LL l,r;
prepare();
while(scanf("%I64d%I64d%I64d",&n,&a,&b)>)
{
if(n==&&a==&&b==)break;
l=a;r=n-b+;
for(cur=;l<=r;l++)
{
cur=( cur+((cnm[n-][l-]*dp[l-][a-])%mod)*dp[n-l][b-])%mod;
}
printf("%I64d\n",cur);
}
return ;
}