#include <iostream>
#include <algorithm>
using namespace std;

long long solve(int a, int b, int n, int s) {
	auto ab_max = [](int b, int n) { return n*(b+b-n+1)/2; };
	auto ab_min = [](int a, int n) { return n*(a+a+n-1)/2; };
	if (n == 1) return ((a <= s && s <= b) ? 1 : 0);
	if (n == 2) {
		if (s < 2*a+1 || s > 2*b-1) return 0;
		return int((s + 1) / 2) - max(a, s - b);
	}
	long long ans = 0;
	int m1 = n / 2, m2 = n - m1 - 1;
	for(int c = a + m1; c <= b - m2; c++) {
		int a1 = a, b1 = c-1, a2 = c+1, b2 = b;
		if ((ab_min(a1, m1) + c + ab_min(a2, m2) > s) ||
			(ab_max(b1, m1) + c + ab_max(b2, m2) < s)) continue;
		int s1_min = max(ab_min(a1, m1), s-c-ab_max(b2, m2));
		int s1_max = min(ab_max(b1, m1), s-c-ab_min(a2, m2));
		for(int s1 = s1_min; s1 <= s1_max; s1++) {
			ans += solve(a1, b1, m1, s1) * solve(a2, b2, m2, s-c-s1);
		}
	}
	return ans;
}

int main() {
	while(1) {
		int n, s;
		cin >> n >> s;
		if (n == 0) break;
		cout << solve(0, 100, n, s) << endl;
	}
}