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

int main()
{

int d=0,n=0,p=0,dementorok,pozicio,demop,demon,k=0;
bool pozigaz=true,pozpigaz=true,poznigaz=true,pozp=true,pozn=true,positivs=false,negativs=false;
    cin>>dementorok;
    vector<int>poziciokn={};
    vector<int>poziciokp={};
    vector<int>poziciok={};
    vector<int>lepesek={};

    for (int i=0;i<dementorok;i++){
        cin>>pozicio;
        poziciok.push_back(pozicio);
        if(pozicio>0){
           poziciokp.push_back(pozicio);
        }
        else{
            poziciokn.push_back(pozicio);

        }

    }




    sort(poziciokn.begin(),poziciokn.end());
    sort(poziciokp.begin(),poziciokp.end());
    for (int i=0;i<dementorok;i++){

        if(positivs==true &&negativs==false){
            for (int j=0;j<poziciokp.size();j++){


        demop=poziciokp[p]-k;


        if (j==poziciokp.size()-1){

                pozp=false;
            }
        }
        positivs=false;
    }
    else{
            if(positivs==false && negativs==true){
    for (int j=0;j<poziciokn.size();j++){


       demon=poziciokp[poziciokp.size()-1-n]-k;



      if (j==poziciokn.size()-1){

        pozn=false;
      }
    }
    negativs=false;
    }
    else{

        for (int j=0;j<poziciokn.size();j++){


       demon=poziciokn[poziciokp.size()-1-n]-k;



      if (j==poziciokn.size()-1){

        pozn=false;
      }

    }
    for (int j=0;j<poziciokp.size();j++){


        demop=poziciokp[p]-k;


        if (j==poziciokp.size()-1){

                pozp=false;
            }
        }

    }


    }



    if((demop<=demon*-1)&& demop !=1 &&demon!=-1){
     p++;
     positivs=true;
     d++  ;
      lepesek.push_back(1);
    }
    else{
        if((demop>demon*-1)&& demop !=1 &&demon!=-1){

            n++;
            negativs=true;
           d++;
           lepesek.push_back(2);
        }
        else{
            lepesek.push_back(1);
        d++;
            break;

        }
    }

if(pozp==false){
    pozpigaz=false;
}
if(pozn==false){
    poznigaz=false;
}
k++;

    }


    cout<<d<<endl;
    for (int i=0;i<lepesek.size();i++){
        cout<<lepesek[i]<<endl;
    }

    return 0;
}