(递归)
#include <bits/stdc++.h>
using namespace std;
int m,n;
int a[55],st[55];
void dfs(int x,int y)//x为1-n的第x个数 y为已经选择的个数
{
if(n-x+1+y<m) return ;//如果剩下的数不够选 返回
if(y==m)//选择的数够了 返回
{
for(int i=1;i<=n;i++)
{
if(st[i]==1) cout<<i<<' ';
}
puts("");
return ;
}
st[x]=1;//标记已选
dfs(x+1,y+1);
st[x]=2;//标记未选
dfs(x+1,y);
}
int main()
{
cin>>n>>m;
dfs(1,0);
return 0;
}