#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll ans=0;
void dfs(int n,int m,int k,int cur){
//剪
//cout<<n<<" "<<m<<" "<<k<<" "<<cur<<endl;
if(m==0){
if(n==0) ans++;
return;
}
if(n<0 || (n-(cur*m))<0) return;
//if(n>(m*k)) return;
for(int i=cur;i<=cur+k;++i){
dfs(n-i,m-1,k,i);
}
return;
}
int main()
{
int n,m,k;
while(1){
cin>>n>>m>>k;
if(n==0 && m==0 && k==0) break;
if(n<m) {
cout<<0<<endl;
continue;
}
ans=0;
dfs(n,m,k,0);
cout<<ans<<endl;
}
return 0;
}