#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll n, x;
    cin >> n;
    vector<ll>veci;
    vector<ll>manji;
    for(ll i = 0; i < n; i++){
        cin >> x;
        if(x > 0){
            veci.push_back(x);
        }
        else{
            manji.push_back(-x);
        }
    }
    ll trg = 1, trd = 1;
    ll iv = 0, im = 0;
    string s1 = "1";
    ll prethodni = 1;
    iv++;
    while(im < manji.size() and iv < veci.size()){
        if(manji[im] - trd <= 0 or veci[iv] - trg <= 0){
            break;
        }
        if(manji[im] - trd == 1 and prethodni == 2){
            s1 += '3';
            trg++;
            trd--;
        }
        if(prethodni == 3){
            im++;
            s1 += '2';
        }
        else if(prethodni == 1){
            s1 += '2';
            im++;
        }
        else{
            s1 += '1';
            iv++;
        }
        prethodni = s1[s1.size() - 1] - '0';
        trg++;
        trd++;
    }
    while(im < manji.size() and iv >= veci.size()){
        if(manji[im] - trd == 0){
            break;
        }
        if(prethodni == 1){
            s1 += '2';
        }
        else if(prethodni == 2){
            s1 += '3';
        }
        else{
            s1 += '2';
        }
        im++;
        trd++;
        prethodni = s1[s1.size() - 1] - '0';
    }
    while(iv < veci.size() and im >= manji.size()){
        if(veci[iv] - trg <= 0){
            break;
        }
        if(prethodni == 2 or prethodni == 3){
            s1 += '1';
            iv++;
        }
        else{
            s1 += '3';
            tr++;
        }
        trg++;
        prethodni = s1[s1.size() - 1] - '0';
    }
    im = 1;
    iv = 0;
    trg = 1;
    trd = 1;
    string s2 = "2";
    prethodni = 2;
    while(im < manji.size() and iv < veci.size()){
        if(manji[im] - trd <= 0 or veci[iv] - trg <= 0){
            break;
        }
        if(manji[im] - trd == 1 and prethodni == 2){
            s2 += '3';
            trg++;
            trd--;
        }
        if(prethodni == 3){
            im++;
            s2 += '2';
        }
        else if(prethodni == 1){
            s2 += '2';
            im++;
        }
        else{
            s2 += '1';
            iv++;
        }
        prethodni = s2[s2.size() - 1] - '0';
        trg++;
        trd++;
    }
    while(im < manji.size() and iv >= veci.size()){
        if(manji[im] - trd == 0){
            break;
        }
        if(prethodni == 1){
            s2 += '2';
        }
        else if(prethodni == 2){
            s2 += '3';
        }
        else{
            s2 += '2';
        }
        im++;
        trd++;
        prethodni = s2[s2.size() - 1] - '0';
    }
    while(iv < veci.size() and im >= manji.size()){
        if(veci[iv] - trg <= 0){
            break;
        }
        if(prethodni == 2 or prethodni == 3){
            s2 += '1';
            iv++;
        }
        else{
            s2 += '3';
            tr++;
        }
        trg++;
        prethodni = s2[s2.size() - 1] - '0';
    }
    cout << max(s1.size(), s2.size()) << endl;
    if(s1.size() > s2.size()){
        cout << s1 << endl;
    }
    else{
        cout << s2 << endl;
    }
}