#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;

    vector<int> pozicije(N);
    string potezi;

    int manji = 0, veci = 0;

    for (int i = 0; i < N; ++i){
        cin >> pozicije[i];
        if (pozicije[i] < 0){
            manji++;
        } else {
            veci++;
        }
    }

    sort(pozicije.begin(), pozicije.end());
    int brojac = 0;

    if (manji == N){
      for (int i = 0; i < N; ++i){
          if (i % 2 == 0){
            potezi += '2';
            brojac++;
          } else {
            potezi += '3';
            brojac++;
          }
      }
    } else if (veci == N){

      for (int i = 1; i < N; ++i){
          if (pozicije[i] - pozicije[i-1] >= 2){
             brojac++;
             potezi += "12";

             for (int j = 0; j < N; ++j){
                 pozicije[j] -= 2;
             }
             if (pozicije[i] <= 0){
                break;
             }
          } else {
            brojac++;
            potezi += "12";
            break;
          }
      }
    } else{
      auto pom = upper_bound(pozicije.begin(), pozicije.end(), 0);
      int mm = (pom - pozicije.begin()) - 1;
      int vv = (pom - pozicije.begin());

      while((N > 0) && (manji > 0 || veci <= N)){
        if (abs(pozicije[mm] - pozicije[vv]) > 2){
            brojac += 2;
            potezi += "12";

            for (int j = 0; j < N; ++j){
                if (pozicije[j] < 0){
                    pozicije[j] += 2;
                } else {
                    pozicije[j] -= 2;
                }
            }
        } else {
          brojac++;
          potezi += '1';
        }
        N -= 2;
        mm--;
        vv++;
      }
    }

    cout << brojac << '\n';
    cout << potezi << '\n';
    return 0;
}