#include <iostream>
#include <algorithm>
#include <climits>

using namespace std;

int dementori_poz[200000];
int dementori_neg[200000];
int istorija_poteza[1000000];

int br_poz = 0;
int br_neg = 0;

int x_hari = 0;

int prethodni_potez = 0;
int uk_potezi = 0;
int uk_elim = 0;
int sled_dem_poz = 0;
int sled_dem_neg = 0;

void potez1() {
    prethodni_potez = 1;
    if (sled_dem_poz < br_poz) {
        sled_dem_poz++;
        uk_elim++;
    }
    istorija_poteza[uk_potezi++] = 1;
}

void potez2() {
    prethodni_potez = 2;

    if (sled_dem_neg < br_neg) {
        sled_dem_neg++;
        uk_elim++;
    }
    istorija_poteza[uk_potezi++] = 2;
}

void potez3() {
    prethodni_potez = 3;
    x_hari++;
    istorija_poteza[uk_potezi++] = 3;
}


int udaljenost_neg() {
    if (sled_dem_neg < br_neg)
        return x_hari + dementori_neg[sled_dem_neg] - uk_potezi;
    else return INT_MAX;
}

int udaljenost_poz() {
    if (sled_dem_poz < br_poz)
        return dementori_poz[sled_dem_poz] - x_hari - uk_potezi;
    else return INT_MAX;
}

int main()
{
    int n;
    cin >> n;

    for (int i = 0; i<n; i++) {
        int x_dem;
        cin >> x_dem;

        if (x_dem > 0) {
            dementori_poz[br_poz++] = x_dem;
        } else {
            dementori_neg[br_neg++] = -x_dem;
        }
    }

    sort(dementori_poz, dementori_poz+br_poz);
    sort(dementori_neg, dementori_neg+br_neg);


    while (udaljenost_poz() > 0 && udaljenost_neg() > 0 && uk_potezi < 1000000) {
        if (udaljenost_neg() == INT_MAX && udaljenost_poz() == INT_MAX) break;

        if (udaljenost_neg() == 1) {
            if (udaljenost_poz() == 1) {
                if (prethodni_potez == 1) {
                    potez2();
                } else potez1();
            } else if (prethodni_potez == 2)
                potez3();
            else potez2();
        } else if (udaljenost_neg() < udaljenost_poz()) {
            if (prethodni_potez != 2)
                potez2();
            else potez1();
        } else {
            if (prethodni_potez != 1)
                potez1();
            else potez2();
        }
    }

    cout << uk_elim << "\n";
    for (int i = 0; i<uk_potezi; i++) {
        cout << istorija_poteza[i];
    }

    return 0;
}