Problem:
整数の和 II

0 から 100 の数字から異なる n 個の数を取り出して合計が s となる組み合わせの数を出力するプログラムを作成してください。n 個の数はおのおの 0 から 100 までとし、１つの組み合わせに同じ数字は使えません。たとえば、n が 3 で s が6 のとき、3 個の数字の合計が 6 になる組み合わせは、

1 + 2 + 3 = 6
0 + 1 + 5 = 6
0 + 2 + 4 = 6

の 3 通りとなります。

Input

複数のデータセットが与えられます。各データセットに n ( 1 ≤ n ≤ 9 ) と s ( 0 ≤ s ≤ 1000 ) が１つのスペースで区切られて１行に与えられます。n と s が共に 0 のとき入力の最後とします。

データセットの数は 50 を超えません。

Output

各データセットに対して、n 個の整数の和が s になる組み合わせの数を１行に出力して下さい。

組み合わせの数が 1010を超える入力は与えられません。

Sample Input

3 6
3 1
0 0

Output for the Sample Input

3
0

Solution in Python (judge verdict: Accepted)

A=[[[0 for k in range(1001)] for j in range(101)] for i in range(10)]
for j in range(101):
    A[1][j][j]=1
for i in range(2,10):
    for j in range(101):
        for k in range(j,i*j):
            for m in range((k-j)/(i-1),j):
                A[i][j][k]+=A[i-1][m][k-j]
while(1):
    [n,s]=[int(x) for x in raw_input().split()]
    if n==0:    break
    ans=0
    for j in range(101):
        ans+=A[n][j][s]
    print ans