#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    deque<int> demS,demJ;
    for(int i=0; i<n; i++)
    {
        int x;
        cin >> x;
        if(x>0)demS.push_back(x);
        else demJ.push_back(x);
    }
    int prevMove=-1,pos=0,res=0,pomeraj=0;
    string ans="";
    sort(demS.begin(),demS.end());
    sort(demJ.begin(),demJ.end(),greater());

    while(demS.size()+demJ.size()>0)
    {
        if(demS.size()>0 && demJ.size()>0)
        {
            if(abs(demS[0]-pomeraj)-pos<abs(demJ[0]+pomeraj)-pos)
            {
                prevMove=1;
                ans+='1';
                demS.pop_front();
                res++;
            }
            else if(abs(demS[0]-pomeraj)-pos>abs(demJ[0]+pomeraj)-pos)
            {
                prevMove=2;
                ans+='2';
                demJ.pop_front();
                res++;
            }
            else if(abs(demS[0]-pomeraj)-pos==abs(demJ[0]+pomeraj)-pos && prevMove!=1)
            {
                prevMove=1;
                ans+='1';
                demS.pop_front();
                res++;
            }
            else if(abs(demS[0]-pomeraj)-pos==abs(demJ[0]+pomeraj)-pos && prevMove!=2)
            {
                prevMove=2;
                ans+='2';
                demJ.pop_front();
                res++;
            }
            else if(abs(demS[0]-pomeraj)-pos==abs(demJ[0]+pomeraj)-pos && prevMove==3)
            {
                prevMove=1;
                ans+='1';
                demS.pop_front();
                res++;
            }
        }
        else if(demS.size()<=0 && demJ.size()>0)
        {

            if(prevMove!=2)
            {
                prevMove=2;
                ans+='2';
                demJ.pop_front();
                res++;
            }
            else if(prevMove==2)
            {
                prevMove=3;
                ans+='3';
            }
        }
        else if(demS.size()>0 && demJ.size()<=0)
        {

            if(prevMove!=1)
            {
                prevMove=1;
                ans+='1';
                demS.pop_front();
                res++;
            }
            else if(prevMove==1)
            {
                prevMove=2;
                ans+='2';
            }
        }

        if(demS.size()>0)
            if(demS[0]-pomeraj==pos)break;
        if(demJ.size()>0)
            if(demJ[0]+pomeraj==pos)break;

        pomeraj++;
    }

    cout << res << endl << ans << endl;

    return 0;
}