dfs
#include <iostream>
using namespace std;
const int N = 30;
int n,m,count;
int way[N];
void dfs(int u,int start){
if(u+n-start<m) return; //当前已选的数+剩余的数仍然小于m(这种情况应该不会出现吧)
if(u > m){
for(int i=1;i<=m;i++) cout<<way[i]<<" ";
cout<<endl;
return ;
}
for(int i=start;i<=n;i++){
way[u] = i;
dfs(u+1, i+1);
way[u] = 0;
}
return ;
}
int main(){
cin>>n>>m;
dfs(1, 1);//参数1表示选到第几个数,参数2表示从第几个数开始选
return 0;
}