#include <stdio.h>
using namespace std;
FILE*f=fopen("combinari.in","r");
FILE*g=fopen("combinari.out","w");
int n,k,p,as,ev,st[20];
int succ(int k)
{
if (st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
for (int i=1;i<k;i++)
{
if (st[i]>=st[k]) return 0;
}
return 1;
}
int sol(int k)
{
if (k==p) return 1;
return 0;
}
void afis()
{
for (int i=1;i<=p;i++)
{
fprintf(g,"%d ",st[i]);
}
fprintf(g,"\n");
}
int main()
{
fscanf(f,"%d%d",&n,&p);
k=1; st[k]=0;
while (k>0)
{
do
{
as=succ(k);
if (as) ev=valid(k);
}while(as && !ev);
if (as)
{
if (sol(k)) afis();
else
{
k++;
st[k]=0;
}
}
else k--;
}
return 0;
}