import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

int readint() {
    return readln.chomp.to!int;
}

int[] readints() {
    return readln.split.map!(to!int).array;
}

long calc(int n, int s) {

    long rec(int p, int sum, int to, long[][][] memo) {
        if (to > 0 && memo[p][to][sum] >= 0)
            return memo[p][to][sum];

        if (p == n) {
            return sum == s ? 1 : 0;
        }

        long ans = 0;
        for (int i = to + 1; i <= 100; i++) {
            if (sum + i > s)
                break;
            ans += rec(p + 1, sum + i, i, memo);
        }

        if (to > 0)
            memo[p][to][sum] = ans;
        return ans;
    }

    auto memo = new long[][][](n + 1, 101, 1001);
    for (int i = 0; i < n + 1; i++) {
        for (int j = 0; j < 101; j++) {
            for (int k = 0; k < 1001; k++)
                memo[i][j][k] = -1L;
        }
    }
    return rec(0, 0, -1, memo);
}

void main() {
    string t;
    while ((t = readln.chomp).length > 0) {
        auto ns = t.split.map!(to!int).array;
        int n = ns[0], s = ns[1];
        if (n == 0 && s == 0)
            break;

        writeln(calc(n, s));
    }
}