#include <bits/stdc++.h>
using namespace std;
/*
n以下の数がちょうどk個であるような集合で、数値の和がsになるのは何通り？
1<=n<=20
1<=k<=10
1<=s<=155
*/
int d[200][200][200];
int dfs(int n,int k,int s){
	if(n<0||k<0||s<0)return 0;
	if(d[n][k][s]!=-1)return d[n][k][s];
	int ans=dfs(n-1,k-1,s-n)+dfs(n-1,k,s);
	return d[n][k][s]=ans;
}
int main(){
	memset(d,-1,sizeof(d));
	d[0][0][0]=1;
	for(int n,k,s;cin>>n>>k>>s,n;)cout<<dfs(n,k,s)<<endl;
}
