#ifdef LOCAL #include #else #include #define debug(...) ((void)0) #define postprocess(...) ((void)0) #endif using namespace std; using ll = long long; using ld = long double; void solve([[maybe_unused]] int test) { int N; cin >> N; vector A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } map prev; for (int i = 0; i < N; i++) { if (prev.contains(A[i])) { vector P1(N); iota(P1.begin(), P1.end(), 1); auto P2 = P1; swap(P2[i], P2[prev[A[i]]]); for (int i = 0; i < N; i++) { cout << P1[i] << (i == N - 1 ? "\n" : " "); } for (int i = 0; i < N; i++) { cout << P2[i] << (i == N - 1 ? "\n" : " "); } return; } prev[A[i]] = i; } cout << "-1" << endl; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; for (int i = 1; i <= t; i++) { solve(i); } postprocess(); }