生成组合数
#include<bits/stdc++.h>
using namespace std;
template <typename T> void read(T &x){
x=0;int f=1;char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch-'0';
x*=f;
}
int n,r;
int a[111];
bool v[111];
void dfs(int k){
if(k==r+1){
for(int i=1;i<=r;++i) cout<<a[i]<<" ";
cout<<endl;
}
else{
for(int i=a[k-1]+1;i<=n;++i){
if(!v[i]){
v[i]=1;
a[k]=i;
dfs(k+1);
a[k]=0;
v[i]=0;
}
}
}
}
int main(){
read(n),read(r);
dfs(1);
return 0;
}