#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> levo, desno;
    int br_poteza = 0;
    int leva_granica = 0;
    int desna_granica = 0;
    string potezi = "";
    int odg = 0;

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

        if(x < 0) levo.push_back(x);
        else desno.push_back(x);
    }

    sort(levo.begin(), levo.end());
    sort(desno.begin(), desno.end());

    if(!desno.size())
    {
        while(br_poteza < 1000000 && levo.size() > 0 && levo[levo.size() - 1] != leva_granica)
        {
            if(br_poteza % 2 == 0)
            {
                potezi += '2';
                leva_granica--;
                levo.erase(levo.end() - 1);
                odg += 1;
            }
            else
            {
                potezi += '3';
                leva_granica++;
            }
            
            br_poteza++;
        }
    }
    else
    {
        while(br_poteza < 1000000 && desno.size() > 0 && desno[desno.size() - 1] != desna_granica)
        {
            if(br_poteza % 2 == 0)
            {
                potezi += '1';
                desna_granica++;
                desno.erase(desno.begin());
                odg += 1;
            }
            else
            {
                potezi += '2';
                desna_granica--;
            }
            
            br_poteza++;
        }
    }

    cout << odg << endl;
    cout << potezi;

    return 0;
}