#include<bits/stdc++.h>
using namespace std;
vector<int > p;
void pri()
{
int i,j,a[1121]={0};
for(i=2;i<1121;i++)
for(j=i+i;j<1121;j+=i)
a[j]=1;
for(i=2;i<1121;i++)
if(!a[i]) p.push_back(i);
return;
}
long long int a[188][1121][15],v[188][1121][15];
int k,n;
long long int rec(int i,int r,int c)
{
if(v[i][r][c]) return(a[i][r][c]);
if(r<0) return(0);
if(r==0&&c==k) return(1);
if(c==k) return(0);
if(i==n) return(0);
v[i][r][c]=1;
return(a[i][r][c]=rec(i+1,r,c)+rec(i+1,r-p[i],c+1));
}
int main()
{
pri();
n=p.size();
int r,i,j;
while(1)
{
cin>>r>>k;
if(!r&&!k) break;
memset(a,0,sizeof(a));memset(v,0,sizeof(v));
cout<<rec(0,r,0)<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludCA+IHA7CnZvaWQgcHJpKCkKewogICAgaW50IGksaixhWzExMjFdPXswfTsKICAgIGZvcihpPTI7aTwxMTIxO2krKykKICAgICAgICBmb3Ioaj1pK2k7ajwxMTIxO2orPWkpCiAgICAgICAgICAgIGFbal09MTsKICAgIGZvcihpPTI7aTwxMTIxO2krKykKICAgICAgICBpZighYVtpXSkgcC5wdXNoX2JhY2soaSk7CiAgICByZXR1cm47Cn0KbG9uZyBsb25nIGludCBhWzE4OF1bMTEyMV1bMTVdLHZbMTg4XVsxMTIxXVsxNV07CmludCBrLG47CmxvbmcgbG9uZyBpbnQgcmVjKGludCBpLGludCByLGludCBjKQp7CiAgICBpZih2W2ldW3JdW2NdKSByZXR1cm4oYVtpXVtyXVtjXSk7CiAgICBpZihyPDApIHJldHVybigwKTsKICAgIGlmKHI9PTAmJmM9PWspIHJldHVybigxKTsKICAgIGlmKGM9PWspIHJldHVybigwKTsKICAgIGlmKGk9PW4pIHJldHVybigwKTsKICAgIHZbaV1bcl1bY109MTsKICAgIHJldHVybihhW2ldW3JdW2NdPXJlYyhpKzEscixjKStyZWMoaSsxLHItcFtpXSxjKzEpKTsKfQppbnQgbWFpbigpCnsKICAgIHByaSgpOwogICAgbj1wLnNpemUoKTsKICAgIGludCByLGksajsKICAgIHdoaWxlKDEpCiAgICB7CiAgICAgICAgY2luPj5yPj5rOwogICAgICAgIGlmKCFyJiYhaykgYnJlYWs7CiAgICAgICAgbWVtc2V0KGEsMCxzaXplb2YoYSkpO21lbXNldCh2LDAsc2l6ZW9mKHYpKTsKICAgICAgICBjb3V0PDxyZWMoMCxyLDApPDxlbmRsOwogICAgfQp9Cg==