#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;

int main()
{
    int n;
    cin >> n;

    vector<int> napred_niz;
    vector<int> nazad_niz;

    for (int i = 0; i < n && i < 1000000; i++) {

        int dementor;
        cin >> dementor;

        if (dementor < 0) nazad_niz.push_back(dementor);
        else if (dementor > 0) napred_niz.push_back(dementor);

    }

    sort(napred_niz.begin(), napred_niz.end());
    sort(nazad_niz.begin(), nazad_niz.end(), [](const int& a, const int& b) {
        return a > b;
    });

    queue<int> napred;
    queue<int> nazad;

    for (int i = 0; i < napred_niz.size(); i++) napred.push(napred_niz[i]);
    for (int i = 0; i < nazad_niz.size(); i++) nazad.push(nazad_niz[i]);


    if (napred.front() == (-1) * nazad.front() && napred.front() == 1) {
        cout << "1\n";
        cout << "1";
        return 0;
    }

    int byebye_dementors = min(n, 1000000);
    cout << byebye_dementors << "\n";

    for (int i = 0; i < n && i < 1000000; i++) {
        
        if (nazad.empty() || (!napred.empty() && napred.front() <= (-1) * nazad.front())) {
            cout << "1";
            napred.pop();
        }

        else {
            cout << "2";
            nazad.pop();
        }

        
    }
    
}