#include <iostream>
#include <string>
#include <vector>
#include <cstring>
using namespace std;

long long dp[1001][101][10];
bool used[101];

long long solve(int s, int upper, int n) {
    if (n == 0) {
        return s == 0 ? 1 : 0;
    }
    if (0 <= dp[s][upper][n]) {
        return dp[s][upper][n];
    }
    long long ret = 0;
    for (int i=upper; i>=0; --i) {
        if ( ! used[i] && 0 <= s-i) {
            used[i] = true;
            ret += solve(s-i, i-1, n-1);
            used[i] = false;
        }
    }
    return dp[s][upper][n] = ret;
}

int main() {
    int n, s;
    for (int i=0; i<1001; ++i) {
        for (int j=0; j<101; ++j) {
            for (int k=0; k<10; ++k) {
                dp[i][j][k] = -1;
            }
        }
    }
    memset(used, false, sizeof used);
    while (cin >> n >> s, n) {
        cout << solve(s, 100, n) << endl;
    }
    return 0;
}