#include<bits/stdc++.h>
using namespace std;
int n,k,a[105],vis[105],b[105];
void dfs(int t){
if(t>k){
for(int i=1;i<t;i++){
printf("%d ",b[i]);
}
puts("");
return ;
}
for(int i=1;i<=n;i++){
if(a[i]==b[t-1]) continue;
b[t]=a[i];
dfs(t+1);
b[t]=0;
}
}
template <typename TM>
void in(TM &n){
char c=getchar();
int f=1;
while ((c>'9' || c<'0') && c!='-') c=getchar();
if(c=='-') f=-1, c=getchar();
for(n=0; c>='0'&&c<='9'; c=getchar()) n=n*10+c-'0';
n*=f;
}
int main(){
in(n),in(k);
for(int i=1;i<=n;i++){
a[i]=i;
}
dfs(1);
return 0;
}