#include<iostream>
using namespace std;
long long n,k,rest;
long long ans[11];
long long tot=0;
void dfs(long long pos){
if(pos>=k+1){
for(int i=1;i<=k;i++){
cout<<ans[i];
}
cout<<endl;
if(rest==0){
tot++;
}
return;
}
for(long long i=1;i<=rest-(k-pos);i++){
if(ans[pos-1]<=i){
ans[pos]=i;
rest-=i;
dfs(pos+1);
ans[pos]=0;
rest+=i;
}
}
}
int main(){
cin>>n>>k;
rest=n;
dfs(1);
cout<<tot<<endl;
return 0;
}