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

int main(){
  int n;
  cin>>n;
  vector<int> ispred;
  vector<int> iza;
  for(int i=0;i<n;i++){
    int x;
    cin>>x;
    if(x<0)
      iza.push_back(x);
    else
      ispred.push_back(x);
  }
  sort(ispred.rbegin(), ispred.rend());
  sort(iza.rbegin(), iza.rend());
  string koraci;
  
  int poslednji = -1;
  int i = 0;
  int pos = 0;
  int k = 0;
  
  while(true){
    if((ispred.size()==0 && iza.size()==0) || (ispred.size()!=0 && ispred[ispred.size()-1] - i == pos) || (iza.size()!=0 && iza[iza.size()-1] + i == pos) || i==1000000)
      break;
    int ispredDist, izaDist;
    if(ispred.size()!=0)
      ispredDist = abs(ispred[ispred.size()-1] - i - pos);
    else
      ispredDist = -1;
    if(iza.size()!=0)
      izaDist = abs(iza[iza.size()-1] + i - pos);
    else
      izaDist = -1;
    if((ispredDist<=izaDist && poslednji!=1 && ispredDist!=-1) || (izaDist==-1 && poslednji!=1)){
      poslednji=1;
      ispred.pop_back();
      koraci.push_back('0' + poslednji);
      k++;
    }
    else if((izaDist<=ispredDist && poslednji!=2 && izaDist!=-1 ) || (ispredDist==-1 && poslednji!=2)){
      poslednji=2;
      iza.pop_back();
      koraci.push_back('0' + poslednji);
      k++;
    }
    else if(izaDist==1 && poslednji!=3 && ispredDist!=1){
      poslednji=3;
      pos++;
      koraci.push_back('0' + poslednji);
    }
    else if(poslednji!=3){
      poslednji = 3;
      koraci.push_back('0' + poslednji);
      pos++;
    }
    i++;
  }
  cout<<k<<endl;
  cout<<koraci<<endl;
}