#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());

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

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

    return 0;
}