//C++11
#include<iostream>

using namespace std;

#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)

#define LL long long

//number is 0..100
const int MAXN = 9;
const int MAXNUM = 100; // number is 0..100
const int MAXSUM = MAXNUM*MAXN;
// memo[n][i0][s] is # the of cases where the sum of n integers (<=i0) gives s.
LL memo[MAXNUM+1][MAXNUM+1][MAXSUM+1];

int N,S;

LL ncases(int n,int i0,int s)
{
    if(n==0&&s==0) return 1;
    if(n<0||i0<0||s<0) return 0;
    if(memo[n][i0][s]!=-1) return memo[n][i0][s];
    LL retval=0;
    RFOR(i,0,i0+1) retval+=ncases(n-1,i-1,s-i);
    return memo[n][i0][s]=retval;
}

int solve(void)
{
    if(S>MAXSUM) return 0;
    return ncases(N,MAXNUM,S); 
}

int main(void)
{
    REP(n,MAXNUM+1) REP(i0,MAXNUM+1) REP(s,MAXSUM+1) memo[n][i0][s]=-1;
    while((cin>>N>>S)){
        if(N==0&&S==0) break;
        cout<<solve()<<endl;
    }
    return 0;
}