/*   @JUDGE_ID:   1705PZ   369   C */
#include <stdio.h>
#include <stdlib.h>

long solve(long n,long m)
{
        long i;
	long *c;
	c = (long *)malloc(sizeof(long) * (m + 1));
        for(i = 0; i <= m; i++)
                c[i] = 1;
        while(n-- > m)
                for (i = 1; i <= m; i++)
                        c[i] += c[i-1];
        i = c[m];
        free(c);
        return i;
}

int main()
{
	long n,k;
	while(1)
	{
		scanf("%ld %ld",&n,&k);
		if(n == 0 && k== 0)
			break;
		if(2 * k > n)
			printf("%ld things taken %ld at a time is %ld exactly.\n",n,k,solve(n,n - k));
		else
			printf("%ld things taken %ld at a time is %ld exactly.\n",n,k,solve(n,k));
	}
	return 0;
}
@END_OF_SOURCE_CODE
