# 打卡
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m;
bool used[20];//0表示未使用,1表示使用
void DFS(int u,int t)
{
if(u>m)
{
for(int i=0;i<n;i++)
{
if(used[i]==1)
printf("%d ",i+1);
}
puts("");
return;
}
for(int i=t;i<n;i++)
{
if(!used[i])
{
used[i]=1;
DFS(u+1,i+1);
used[i]=0;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
DFS(1,0);
return 0;
}