#include "perm.h"
#include <bits/stdc++.h>
using namespace std;
int cnt, ss = 0;
vector<vector<int>> ans(70);
vector<long long> pw2(61, 1);
void solve(long long k){
for (int i = 1; i < 61; i++){
if (k == pw2[i] - 1){
for (int j = 0; j < i; j++){
ans[cnt].push_back(j);
}
ss += ans[cnt].size();
cnt++;
return;
}
if (k < pw2[i] - 1){
int in = i - 1;
solve(pw2[in] - 1);
solve(k - pw2[in] + 1);
return;
}
}
}
vector<int> construct_permutation(long long k){
for (int i = 1; i < 61; i++) pw2[i] = pw2[i - 1] * 2;
for (int i = 0; i < 70; i++) ans[i].clear();
cnt = 0;
solve(k - 1);
vector<int> ans2;
for (int i = 0; i < cnt; i++){
for (int j = 0; j < ans[i].size(); j++){
ans2.push_back(ss - ans[i].size() + j);
}
ss -= ans[i].size();
}
return ans2;
}