#include<iostream>
using namespace std;
#define MAXN 100
int num;
void print(int *a,int n){
int i;
cout<<num++<<": ";
for(int i=0;i<n-1;i++)
cout<<a[i]<<' ';
cout<<a[n-1]<<endl;
}
void P(int *a,int n,int m,int lev,int *temp,int *tag){
int i;
if(lev==m) print(temp,m);
else
for(i=0;i<n;i++)
if(!tag[i]){
temp[lev]=a[i];
tag[i]=1;
P(a,n,m,lev+1,temp,tag);
tag[i]=0;
}
}
void gen(int n,int m){
int a[MAXN],temp[MAXN],tag[MAXN]={0},i;
for(i=0;i<n;i++) a[i]=i+1;
P(a,n,m,0,temp,tag);
}
int main(){
int n,m,cnt=0;
while(cin>>n>>m){
num=1;
gen(n,m);
}
return 0;
}