#include <iostream>
#include <fstream>
using namespace std;
int n,p,k,st[19];
ifstream f("combinari.in");
ofstream g("combinari.out");
void init()
{st[k]=0;}
int am_succesor()
{if(st[k]<n-p+k) {st[k]++;
return 1;
}
return 0;
}
int e_valid()
{int i;
if(k>1) if(st[k]<st[k-1]) return 0;
for (i=1;i<=k-1;i++)
if(st[k]==st[i]) return 0;
return 1;
}
int sol()
{return k==p;}
void tipar()
{ int i;
for(i=1;i<=p;i++)
g<<st[i]<<" ";
g<<endl;
}
void back()
{int as,ev;
k=1;
init();
while(k>0)
{ do
{
as=am_succesor();
ev=e_valid();
}
while ((as) && (!ev));
if(as) if (sol()) tipar();
else {
k++;
init();
}
else k--;
}
}
int main ()
{
f>>n;
f>>p;
back();
f.close();
g.close();
return 0;
}