#include<stdio.h>
int a[15];
int backtrack(int l,int n,int s)
{
	int i,j,k,flag,t,count=0;
	for(i=0;i<=9;i++)
	{
A:
		flag=0;
		a[l]=i;
	 	for(j=1;j<=l-1;j++)
		{
			if(a[l]<=a[j])
			{
				flag=1;
				break;
			}
		}
		if(flag==0)
		{
			if(l==n)
			{
				t=0;
				for(k=1;k<=n;k++)
				{
					t+=a[k];
				}
				if(t==s)
				{
					count++;
				}
			}
			else if(l<n)
			{
				l++;
				i=-1;
				continue;
			}
		}
		if((a[n]==9)||(a[l]==9&&flag==1))
		{
			while(a[l]==9)
			{
				l--;
			}
			if(l==0)
			{
				break;
			}
			else
			{
				i=a[l]+1;
				goto A;
			}
		}
	}
	printf("%d\n",count);
    return 0;
}

int main()
{
	int n,s,i,j,k,count;
	while(scanf("%d %d",&n,&s),n||s)
	{
		if(n<=0||s<=0||n>10||s>45||s<n*(n-1)/2)
		{
			printf("0\n");
		}
		else
		{
			backtrack(1,n,s);
		}
	}
	return 0;
}