Write a program that extracts n different numbers from the numbers 0 to 100 and outputs the number of combinations that add up to s. Each n number is from 0 to 100, and the same number cannot be used in one combination. For example, if n is 3 and s is 6, the combination of the three numbers totaling 6 is


1 + 2 + 3 = 6
0 + 1 + 5 = 6
0 + 2 + 4 = 6


There are three ways.



Input

Given multiple datasets. For each dataset, n (1 ≤ n ≤ 9) and s (0 ≤ s ≤ 1000) are given on one line, separated by a space. When both n and s are 0, it is the end of the input.

The number of datasets does not exceed 50.

Output

For each dataset, output the number of combinations in which the sum of n integers is s on one line.

No input is given with more than 1010 combinations.

Example

Input

3 6
3 1
0 0


Output

3
0
#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 300

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

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

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

	//restまでの整数のなかで残りn個を選んで和をsにする組み合わせ

	if (rest < 0)
	{
		//0まで見た時
		if (n == 0 && s == 0)
		{
			//和がsになっている場合は組み合わせとして適する
			return 1;
		}
		else
		{
			//n個選んでない場合や和がsになっていない場合
			return 0;
		}
	}
	if (n < 0 || s < 0)
	{
		//もう選べない場合か和が負になる組み合わせはない
		return 0;
	}
	if (dp[rest][n][s] != -1)
	{
		return dp[rest][n][s];
	}

	ll ret = 0;
	ret += dfs(rest - 1, n, s);//数字restを選ばない場合
	ret += dfs(rest - 1, n - 1, s - rest);//数字restを選ぶ場合
	
	return dp[rest][n][s] = ret;
}

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] = -1LL;
				}
			}
		}
		cout << dfs(100, n, s) << endl;
	}


	

	return 0;
}
