#define _USE_MATH_DEFINES
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdio>
#include<deque>
#include<list>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<queue>
#include<vector>
using namespace std;

/*
0 1 2 3 4 5 6 7 8 9

*/

int A(int n, int s, int f) {
	int cnt = 0;
	if (n > 2)
		for (int i = f; i <= 9; i++) {
			if (s - i > i)cnt += A(n - 1, s - i, i + 1);
			else break;
		}
	else if (n == 2)
		for (int i = f; i <= 9; i++) {
			if (s - i <= 9 && s - i > i)cnt++;
			else break;
		}
	else if (n == 1)
		cnt = 1;

	return cnt;
}

int a, S;

//void dfs(int i, int s, int n) {
//	//cout << i << " " << s << " " << n << endl;
//	if (s == S&&n == 0) {
//		a++;
//		return;
//	}
//	if (i == 10 || n == 0)
//		return;
//
//	dfs(i + 1, s + i, n - 1);
//	dfs(i + 1, s, n);
//}

int main() {
	for (int n; cin >> n >> S && (n || S);) {
	//for (int n = 0; n < 9; n++) {
		//for (S = 1; S < 9; S++) {
			a = 0;
			//dfs(0, 0, n);
			//cout << n << " " << S << ":" << a << " " << A(n, S, 0) << endl;
			cout<<A(n, S, 0) << endl;
		//}
	}

	return 0;
}