#include <cstdio>
int n,k,p[22];
void Dfs(int index,int nowk)
{
if(nowk==k)
{
for(int i=1;i<k;++i)
printf("%d ",p[i]);
printf("%d\n",p[k]);
return ;
}
if(index>n||nowk>k)
return ;
p[nowk+1]=index;
Dfs(index+1,nowk+1);
Dfs(index+1,nowk);
}
int main()
{
scanf("%d %d", &n,&k);
Dfs(1,0);
return 0;
}
#include <cstdio>
int ans[20],n,r;
void prin(){
for(int i=0;i<r-1;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[r-1]);
}
void dfs(int x,int num){
if(num==r){
prin();
return ;
}
if(x>n||num>r)
return;
else{
ans[num]=x;
dfs(x+1,num+1);
dfs(x+1,num);
}
}
int main()
{
scanf("%d%d",&n,&r);
dfs(1,0);
}