#include<iostream>
#include<string>
#include<iomanip>
#include<algorithm>
#include<cmath>
#define rep(i,a,b) for(ull i=a;i<=b;i++)
#define ull unsigned long long
using namespace std;
ull a[30]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
ull n,r,b[30][30],c[30],head=1;
bool k(ull n){
for(int i=1;i<=r;i++){
if(b[n][i]!=c[i])return true;
}
return false;
}
bool cheak(){
for(int i=1;i<=head;i++){
if(!k(i))return false;
}
return true;
}
int main(){
cin>>n>>r;
do{
for(ull i=1;i<=r;i++){
c[i]=a[i];
}
sort(c+1,c+r+1);
if(cheak()){
for(int i=1;i<=r;i++)cout<<setw(3)<<a[i];
cout<<endl;
for(int i=1;i<=r;i++){
b[head][i]=a[i];
}
head++;
}
}while(next_permutation(a+1,a+n+1));
return 0;
}