#include <bits/stdc++.h>
#define ll long long
#define MAXN 200005
using namespace std;

int N;
int a[MAXN];

int old = 0;
int pos = 0;
int ans = 0;

int main() {
    cin >> N;
    for (int i = 0; i < N; i++) {
        cin >> a[i];
    }
    sort(a, a+N);

    vector<int> moves;
    
    int p = N;
    for (int i = 0; i < N; i++) {
        if (a[i] > 0) {
            p = i;
            break;
        }
    }

    stack<int> levo_s;
    stack<int> desno_s;

    for (int i = 0; i < p; i++) {
        levo_s.push(a[i]*-1);
    }
    
    for (int i = N-1; i >= p; i--) {
        desno_s.push(a[i]);
    }

    for (int t = 0; t < 1000000; t++) {
        bool ima_levo = levo_s.size();
        bool ima_desno = desno_s.size();

        int l = ima_levo ? levo_s.top() : 0;
        int r = ima_desno ? desno_s.top() : 0;

        l = l - t + pos;
        r = r - t - pos;

        if (ima_levo && l <= 0) break;
        if (ima_desno && r <= 0) break;

        int potez;

        if (ima_levo && ima_desno) {
            if (l <= r) {
                if (old == 2) {
                    if (r > 2) {
                        potez = 3;
                    } else {
                        potez = 1;
                    }
                }
                else potez = 2;
            } else {
                if (old == 1) potez = 2;
                else potez = 1;
            }
        }
        else if (ima_levo) {
            if (old == 2) {
                potez = 3;
            } else {
                potez = 2;
            }
        }
        else if (ima_desno) {
            if (old == 1) {
                potez = 2;
            } else {
                potez = 1;
            }
        } else {
            break;
        }

        if (potez == 1 && ima_desno) {
            desno_s.pop();
            ans++;
        }
        else if (potez == 2 && ima_levo) {
            levo_s.pop();
            ans++;
        }
        else if (potez == 3) pos++;

        moves.push_back(potez);
        old = potez;
    }

    cout << ans << "\n";
    for (int &i : moves) {
        cout << i;
    }
    cout << "\n";
}