#include "bits/stdc++.h"
#include "partition.h"
// #include "grader.cpp"
using namespace std;


#define N 1000005
#define ll long long

const int inf = INT_MAX;

ll d[N], n, ans, S = 0;
vector <int> c, a, b;
set <int> s = {};
map <int,int> vis;

void FF(int x,ll sm,int cnt) {
    if(sm * 2 >= S) {
        int l = cnt;
        int r = n - cnt;
        if(ans > abs(r - l)) {
            ans = abs(r - l);
            for(int i = 0; i < n; i++) {
                c[i] = b[i];
            }
        }
        return;
    }
    if(x == n) return;
    b[x] = 1;
    FF(x + 1, sm + d[x], cnt + 1);
    b[x] = 0;
    FF(x + 1, sm, cnt);
}

vector<int> solve(vector<int> A) {
    
    S = 0;
    b.resize(n);
    c.resize(n);
    n = (int)A.size();
    for(int i = 0; i < n; i++) {
        s.insert(i);
    }
    for(int i = 0; i < n; i++) {
       if(!vis[A[i]]) {
            a.push_back(i);
            s.erase(i);        
        }
        vis[A[i]] = 1;
    }
    for(auto i : s) {
        a.push_back(i);
    }
    // ans = inf;

    // FF(0, 0, 0);

    // int inx = 0;
    // for(int i = 0; i < n; i++) {
    //     if(c[i]) {
    //         s.erase(i);
    //         a[inx++] = i;
    //     }
    // }
    // for(int i = inx; i < n; i++) {
    //     a[i] = *s.begin();
    //     s.erase(*s.begin());
    // }
    return a;
}