#include "partition.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define all(x) (x).begin(),(x).end()

int get(ll i) {
    int cnt = 0;
    while (i % 2 == 0) {
        i /= 2; cnt++;
    }

    return cnt;
}
std::vector<int> solve(std::vector<int> arr) {
    int n = arr.size(); vector<int> ans = {n - 1};
    for (int i = 0; i < n - 1; i++) ans.pb(i);
    return ans;

    int cnt[26]{}; vector<int> v[26];
    for (int i = 0; i < arr.size(); i++) {
        cnt[get(arr[i])]++; v[get(arr[i])].pb(i);
    }

    bool f = 0;
    for (int i = 25; i >= 0; i--) {
        if (cnt[i] % 2 == 0) cnt[i] /= 2;
        else {
            if (!f) { f = 1; cnt[i] = cnt[i] / 2 + 1; }
            else cnt[i] /= 2;
        }
    }

    for (int i = 0; i <= 25; i++) {
        for (int j = 0; j < cnt[i]; j++) ans.pb(v[i][j]);
    }

    for (int i = 0; i <= 25; i++) {
        for (int j = cnt[i]; j < v[i].size(); j++) ans.pb(v[i][j]);
    }

    return ans;
}

// int main () {
//     ios_base::sync_with_stdio(false);
//     cin.tie(NULL);
//     int t;
//     cin >> t ;
//     for (int test=1; test<=t; test++) {
//         int n;
//         cin >> n ;
//         vector <int> a(n);
//         for (int i=0; i<n; i++) {
//             cin >> a[i] ;
//         }

//         for (auto ind : solve(a)) {
//             cout << ind << " ";
//         }
//         cout << endl ;
//     }
//     cout << endl ;
//     return 0;
// }
