#include using namespace std; int main() { int N; cin >> N; vector A(N); for(int i = 0; i < N; ++i) cin >> A[i]; if(N == 2) { if((A[0] + 1) ^ (A[1] + 2) == (A[0] + 2) ^ (A[1] + 1)) cout << -1 << "\n"; else cout << 1 << " " << 2 << "\n" << 2 << " " << 1 << "\n"; return 0; } vector P = {1, 2, 3}; map>> mp; do { int X = 0; for(int i = 0; i < 3; ++i) X ^= (A[i] + P[i]); mp[X].push_back(P); } while(next_permutation(P.begin(), P.end())); for(auto [_, vec] : mp) { if(vec.size() == 1) continue; for(int i = 0; i < 3; ++i) cout << vec[0][i] << " "; for(int i = 4; i <= N; ++i) cout << i << " "; cout << "\n"; for(int i = 0; i < 3; ++i) cout << vec[1][i] << " "; for(int i = 4; i <= N; ++i) cout << i << " "; cout << "\n"; return 0; } cout << -1 << "\n"; return 0; }