#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector<ll>;
using vvl = vector<vll>;
using pll = pair<ll,ll>;
using vpl = vector<pll>;
using vvp = vector<vpl>;
#define f first
#define s second
#define pb push_back
#define all(v) v.begin(),v.end()
deque<ll> solve(long long k){
deque<ll> ans;
if(k==1)return ans;
if(k%2==0){
ans = solve(k/2);ll n = ans.size();
ans.pb(n);
return ans;
}
if(k%3==0){
ans = solve(k/3);ll n = ans.size();
ans.pb(n+1);
ans.pb(n);
return ans;
}
if(k%5==0){
ans = solve(k/5);ll n = ans.size();
ans.pb(n+1);
ans.pb(n+2);
ans.pb(n);
return ans;
}
if(k%11==0){
ans = solve(k/11);ll n = ans.size();
ans.pb(n+4);
ans.pb(n+1);
ans.pb(n+2);
ans.pb(n);
ans.pb(n+3);
return ans;
}
if(k%7==0){
ans = solve(k/7);ll n = ans.size();
ans.pb(n+3);
ans.pb(n+1);
ans.pb(n+0);
ans.pb(n+2);
return ans;
}
if(true){
ans = solve(k/2);ll n = ans.size();
ans.pb(n);
if(k%2==1)ans.push_front(n+1);
return ans;
}
}
std::vector<int> construct_permutation(long long k){
deque<ll> ans = solve(k);
vector<int> ret;
for(ll i:ans)ret.pb(i);
return ret;
}