//まともに使い方を理解していないくせにincludeしまくる人間のクズ
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <vector>
#include <algorithm>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <bitset>
#include <iostream>


//using namespace stdしないと表記がめんどくさいからね、仕方ないね
using namespace std;

//可読性を上げるためのdefineがあだとなる典型的パターン
#define FOR(x) for(int i = 0; i < x; i++)

//ローカル変数とグローバル変数は使い分けよう！
stack<short> x, y;
short a[10], n, j, i, m, ans;

//関数って楽しいよね！（魔王スマイル）
void solve(short c, short sum, short cnt){
    if(cnt == n){
        if(sum == m) ans++;
        return;
    }
    if(cnt < n && c > 9) return;
    if(sum > m) return;
    solve(c + 1, sum + c, cnt + 1);
    solve(c + 1, sum, cnt);
    return;
}

int main(){
    while(true){
        scanf("%d %d", &n, &m);
        if(n == 0 && m == 0) return 0;
        ans = 0;
        solve(0, 0, 0);
        printf("%d\n", ans);
    }
}