#include<bits/stdc++.h>
using namespace std;
int a[6000];
int b[6000];
int n,r;
int tot;
void print()
{
tot++;
for(int i=1;i<=r;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
void dfs(int t)
{
int i;
if(t>r) print();//这里一定要大于r,因为等于r的时候a[r]还没有被赋值。
else
for(i=1;i<=n;i++)
if(!b[i])
{
a[t]=i;
b[i]=1;
dfs(t+1);
b[i]=0;
}
/* int i; //另一种写法
for(i=1;i<=n;i++)
{
if(!b[i])
{
a[t]=i;
b[i]=1;
if(t==r)print();
else dfs(t+1);
b[i]=0;
}
}*/
}
int main()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>n>>r;
dfs(1);
}