
import std.stdio, std.conv, std.string, std.algorithm;
import std.array, std.conv, std.c.string;
 
long[102][1001][10] table;

// 再帰で解く
long solve_rec(int comb, int limit, int start) {
  long counter = 0;
  if (comb <  0 || limit <  0)  return 0;
  if (comb == 0 && limit == 0) return 1;
  if (table[comb][limit][start] >= 0) return table[comb][limit][start];
  for(int i = start; i <= 100; i++) {
    counter += solve_rec(comb - 1, limit - i, i + 1);
  }
  return table[comb][limit][start] = counter;
}
 
void main() {
  memset(cast(void *)table, -1, table.sizeof);
  while(true) {
    int[] line = readln.chomp.split(" ").map!(to!(int)).array;
    if (line[0] == 0 && line[1] == 0) break;
    int comb = line[0];
    int limit = line[1];
    solve_rec(comb, limit, 0).writeln;
    // writeln(table[comb][limit][100]);
  }
}