#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; if(N == 1){cout << -1 << endl; return 0;} vector> A(N); for(int i=0; i> A.at(i).first,A.at(i).second = i; sort(A.begin(),A.end()); set idx; for(int i=1; i<=N; i++) idx.insert(i); int swap1 = -1,swap2 = -1; vector answer(N); for(int i=0; i same,diff; for(int k=0; k<20; k++){ if((a1&(1< 1) mind = min(mind,diff.at(1)); if(mind > N) continue; swap1 = pos1,swap2 = pos2; if(diff.size() > 1) if(mind == diff.at(1)){ answer.at(pos1) = mind,answer.at(pos2) = diff.at(0); idx.erase(mind),idx.erase(diff.at(0)); break; } answer.at(pos1) = mind,answer.at(pos2) = mind-diff.at(0); idx.erase(mind); idx.erase(mind-diff.at(0)); break; } if(swap1 == -1){cout << -1 << endl; return 0;} for(auto &a : answer) if(a == 0) a = *idx.begin(),idx.erase(idx.begin()); for(int i=0; i