#include <bits/stdc++.h>
using namespace std;

int memo[32][16][256];
int N, K, S;
vector<int> data;
map<vector<int>, bool> m;

int rec(int p, int k, int s){
	if(s < 0)
		return 0;
	if(k >= K){
		if(s == 0){
			return 1;
		}
		else{
			return 0;
		}
	}
	if(memo[p][k][s] != -1)
		return memo[p][k][s];
	
	int res = 0;
	for(int i = p - 1; i > 0; --i){
		res += rec(i, k + 1, s - i);
	}
	return memo[p][k][s] = res;
}

int main() {
	while(cin >> N >> K >> S && (N || K || S)){
		data.clear();
		memset(memo, -1, sizeof(memo));
		cout << rec(N + 1, 0, S) << endl;
	}
	return 0;
}