#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ull unsigned ll
#define ld long double
typedef vector<int> vi;
typedef multiset<int> mi;
typedef multiset<ll> mll;
typedef vector<ll> vll;
typedef vector<bool> vb;
typedef vector<string> vs;
typedef set<ll> sll;
typedef vector<vector<int>> _2vi;
typedef vector<vector<ll>> _2vll;
#define all(v) ((v).begin()), ((v).end())
#define sz(v) ((ll)((v).size()))

#define vinp(v, n)                \
    for (ull i = 0; i < (n); i++) \
    cin >> (v)[i]
#define printv(v)      \
    for (auto i : (v)) \
    cout << i << " "
#define fr0(i, n) for (ull(i) = 0; (i) < (n); (i)++)
#define fr1(i, n) for (ull(i) = 1; (i) < (n); (i)++)
#define fr(i, x, n) for (ull(i) = (x); (i) < (n); (i)++)
#define _CRT_SECURE_NO_WARNING
const ll MOD = 1000000007;

void Bustany() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
#ifndef ONLINE_JUDGE
    freopen("./in.txt", "r", stdin), freopen("./out.txt", "w", stdout);
#endif
}

const ll N = 1e5 + 5;
vector<sll> adj(N);
//_2vll adj(N,vll(N));
vb vis;

void solve() {
    ll n;
    cin >> n;
    vll v(n);
    vinp(v, n);
    vll ans(n + 1, 2);
    for (auto i: v) {
        ans[i]--;
    }
    if (ans[v[0]] == 0) {
        cout << 1 << endl;
        ll i = 1;
        for (; i <= n; i++) {
            if (ans[i] == 2)break;
        }
        ll j = 1;
        for (; j < n; j++) {
            if (v[j] == v[0]) {
                cout << i << " ";
                break;
            }
        }
        ans[i] = 0;
        ll x = 1;
        for (ll k = 1; k <= n; k++) {
            if (x == j) {
                cout << i << " ";
                x++;
            }
            while (ans[k]--) {
                cout << k << " ";
                x++;
                if (x == j) {
                    cout << i << " ";
                    x++;
                }
            }

        }
    } else {
        cout << 0 << endl;
        ans[v[0]]--;
        for (ll i = 1; i <= n; i++) {
            while (ans[i]--) {
                cout << i << " ";
            }
        }
        cout << v[0];
    }
}

int main() {
    Bustany();
    ll t = 1;
//     cin >> t;
    while (t--) {
        solve();
    }
}