Link to this code: https://cses.fi/paste/762de7cf8b877d1ef83f93/
#include <bits/stdc++.h>

typedef long long int ll;
typedef unsigned long long int ull;
using namespace std;
#define endl '\n';
const ll modular = 1e9 + 7;
const double pi = acos(-1.0);
const ll INF = 1e18;

void solve()
{
    ll num;
    cin >> num;

    vector<ll> vec(num), vecb(num);
    for (auto &it : vec)
        cin >> it;

    for (auto &it : vecb)
        cin >> it;

    vector<ll> times(num + 1), ans(num);
    queue<ll> avail;

    for (ll i = 0; i < num; i++)
    {
        if (avail.size())
        {
            ans[i] = avail.front();
            avail.pop();
        }
        times[vec[i]]++;
        if (times[vec[i]] == 2)
            avail.push(vec[i]);

        times[vecb[i]]++;
        if (times[vecb[i]] == 2)
            avail.push(vecb[i]);
    }

    for (ll i = 0; i < num; i++)
    {
        if (!ans[i])
        {
            ll times=avail.size();
            bool got=0;

            for(ll j=0;j<times;j++)
            {
                ll now = avail.front();
                avail.pop();
                if (now != vec[i] && now != vecb[i])
                {
                    got=1;
                    ans[i] = now;
                    break;
                }
                else
                    avail.push(now);
            }

            if(!got)
            {
                cout<<"IMPOSSIBLE\n";
                return;
            }
        }
    }
    for (auto it : ans)
        cout << it << " ";
    cout << endl;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    ll n;
    n = 1;
    // cin >> n;
    for (ll i = 1; i <= n; ++i)
    {
        // cout << "Case " << i << ": ";
        solve();
    }
    return 0;
}