TLE
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[10001],num[10001],vis[10001];
void print(){
for(int i=1;i<=n;i++) cout<<num[i]<<" ";
}
int p=0,it=-3;
void dfs(int i){
if(i==n+1){
p++;
bool flag=1;
for(int i=1;i<=n;i++){
if(a[i]!=num[i]) flag=0;
}
if(flag){
it=p;
}
if(p==it+m&&it!=-3){
print();
}
return ;
}
for(int j=1;j<=n;j++){
if(!vis[j]){
vis[j]=1;
num[i]=j;
dfs(i+1);
vis[j]=0;
}
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dfs(1);
return 0;
}