#include<bits/stdc++.h>
using namespace std ;

int main() {
    long long n ;
    cin >> n ;
    vector<long long> sever ;
    vector<long long> jug ;
    for (int i = 0 ; i < n ; i++) {
        long long a ;
        cin >> a ;
        if (a > 0) {
            sever.push_back(a) ;
        }
        else {
            jug.push_back(a) ;
        }
    }
    sort(sever.begin(),sever.end()) ;
    sort(jug.begin(),jug.end(),greater<long long>()) ;
    long long x = 0 ;
    string kon = "" ;
    long long pozicija = 0 ;
    long long ubijeni = 0 ;
    while (sever[0]-x != pozicija && jug[0]+x != pozicija) {
        if (sever.size() == 0 && jug.size() == 0) {
            break ;
        }
        if (ubijeni == n) {
            break ;
        }
        if (x == 10e6) {
            break ;
        }
        if (sever.size() == 0) {
            if (kon.size() != 0 && kon[kon.size()-1] == '2') {
                pozicija++ ;
                kon += '3' ;
            }
            else {
                kon += '2' ;
                jug.erase(jug.begin()) ;
            }
            x++ ;
            continue ;
        }
        if (jug.size() == 0) {
            if (kon.size() != 0 && kon[kon.size()-1] == '1') {
                kon += '2' ;
            }
            else {
                kon += '1' ;
                sever.erase(sever.begin()) ;
            }
            x++ ;
            continue ;
        }
        if (sever[0] <= abs(jug[0])) {
            if (kon.size() != 0 && kon[kon.size()-1] == '1') {
                kon += '2' ;
                jug.erase(jug.begin()) ;
            }
            else {
                kon += '1' ;
                sever.erase(sever.begin()) ;
            }
            x++ ;
        }
        else {
            if (kon.size() != 0 && kon[kon.size()-1] == '2') {
                if (sever[0]-abs(jug[0]) >= 2) {
                    kon += "3" ;
                    pozicija++ ;
                }
                else {
                    kon += "1" ;
                    sever.erase(sever.begin()) ;
                }
            }
            else {
                kon += "2" ;
                jug.erase(jug.begin()) ;
            }
            x++ ;
        }
    }
    cout << x << endl ;
    cout << kon ;
    return 0 ;
}