#include <iostream>
#include <bits/stdc++.h>

using namespace std;

#define endl '\n'
#define ll long long

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);

    int n, tmp;
    int n_koraka=0;
    int n_dementora=0;
    int hcoord = 0;
    char pp='g';
    string ans;
    vector<int> jg;
    vector<int> svr;

    cin >> n;

    for(int i=0; i<n; i++){
        cin >> tmp;
        if(tmp<0){
            jg.push_back(-tmp);
        }
        else{
            svr.push_back(tmp);
        }
    }

    sort(jg.begin(), jg.end());
    sort(svr.begin(), svr.end());

    int jl = jg.size();
    int sl = svr.size();
    int jit=0, sit=0;

    while(true){
        if(jit<jl && sit<sl){
            if(jg[jit] < svr[sit]){
                if(pp!='2'){
                    ans+='2';
                    n_dementora++;
                    pp='2';
                    jit++;
                }
                else{
                    ans+='1';
                    n_dementora++;
                    pp='1';
                    sit++;
                }
            }
            else{
                if(pp!='1'){
                    ans+='1';
                    n_dementora++;
                    pp='1';
                    sit++;
                }
                else{
                    ans+='2';
                    n_dementora++;
                    pp='2';
                    jit++;
                }
            }
        }
        else if(jit>=jl && sit<sl){
            if(pp!='1'){
                ans+='1';
                n_dementora++;
                pp='1';
                sit++;
            }
            else{
                ans+='2';
                pp='2';
            }
        }
        else if(sit>=sl && jit<jl){
            if(pp!='2'){
                ans+='2';
                n_dementora++;
                pp='2';
                jit++;
            }
            else{
                pp='3';
                ans+='3';
                hcoord++;
            }
        }
        else if(sit>=sl && jit>=jl){
            break;
        }
        n_koraka++;

        if(n_koraka == 1e6){
            break;
        }

        if(jit<jl){
            if(jg[jit]-n_koraka+hcoord<=0){
                break;
            }
        }

        if(sit<sl){
            if(svr[sit]-n_koraka+hcoord<=0){
                break;
            }
        }
    }

    cout << n_dementora << endl;
    cout << ans;

}