#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;
  int distLevo, distDesno;
  while(true){
    if(ispred.size()!=0)
      distDesno = abs(ispred[ispred.size()-1] - i - pos);
    else
      distDesno = -1;
    if(iza.size()!=0)
      distLevo = abs(iza[iza.size()-1] + i - pos);
    else
      distLevo = -1;
    if((distLevo==-1 && distDesno==-1) || (distDesno==0) || (distLevo==0) || koraci.size()==1000000)
      break;
    if(distDesno==-1 || (distLevo!=-1 && distLevo<=distDesno)){
      if(poslednji!=2){
        poslednji=2;
        iza.pop_back();
        k++;
      }
      else if((distDesno>2 || distDesno==-1) && poslednji!=3){
        poslednji=3;
        pos++;
      }
      else{
        poslednji=1;
        if(distDesno!=-1){
          ispred.pop_back();
          k++;
        }
      }
    }
    else if((distDesno<=distLevo || distLevo==-1) && distDesno!=-1){
      if(poslednji!=1){
        poslednji=1;
        ispred.pop_back();
        k++;
      }
      else{
        poslednji=2;
        if(distLevo!=-1){
          iza.pop_back();
          k++;
        }
        
      }
    }
    koraci.push_back('0'+poslednji);
    i++;
  }
  cout<<k<<endl;
  cout<<koraci<<endl;
}