#include<iostream>
#include<vector>
#include<algorithm>
#include<utility>
#include<string>
#include<cmath>
#include<cstring>
#include<queue>
#include<map>
#include<climits>
#include<set>
#include<tuple>
#include<stack>


using namespace std;
typedef pair<int, int> pii;
typedef long long int ll;
typedef pair<ll, ll> pll;
typedef tuple<int, int, int> tpl;
int dx[4] = { 1,0,0,-1 };
int dy[4] = { 0,1,-1,0 };

#define ARRAY_MAX 10005

const int INF = 1e9 + 7;
const int MOD = 1e9 + 7;

ll dp[105][15][1005];

ll dfs(ll rest, ll n, ll s) {

	
	if (rest < 0)
	{
		if (n == 0 && s == 0)
		{
			return 1LL;
		}
		else
		{
			return 0LL;
		}
	}
	
	if (n < 0 || s < 0)
	{
		return 0;
	}

	if (dp[rest][n][s] != -1)
	{
		return dp[rest][n][s];
	}

	ll cnt = 0;
	cnt += dfs(rest - 1, n, s);//restを選ばない
	cnt += dfs(rest - 1, n - 1, s - rest);//restを選ぶ

	return dp[rest][n][s] = cnt;
}

int main() {

	ll n, s;
	while (cin >> n >> s, n | s)
	{
		for (int i = 0; i < 105; i++)
		{
			for (int j = 0; j < 15; j++)
			{
				for (int k = 0; k < 1005; k++)
				{
					dp[i][j][k] = -1;
				}
			}
		}
		cout << dfs(100LL, n, s) << endl;
	}


	return 0;
}
