using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    internal class Program
    {

        static void Main(string[] args)
        {
            long n = Convert.ToInt64(Console.ReadLine());
            string[] unos = Console.ReadLine().Split(' ');
            long pr = 0;
            long ps = 0; //brojaci za nizve

            for (int i = 0; i < unos.Length; i++)
            {
                long x = Convert.ToInt64(unos[i]);
                if (x > 0) ps++;
                else pr++;
            }

            long[] pre = new long[pr];
            long[] post = new long[ps];
            pr = 0;
            ps = 0;
            //ubacujemo u niz
            for (int i = 0; i < pre.Length; i++)
            {
                long x = Convert.ToInt64(unos[i]);
                if (x > 0) post[ps++] = x;
                else pre[pr++] = (-1 * x);
            }
            Array.Sort(pre);
            Array.Sort(post);
            long tr = 0;//nas piun
             long k = 0;//posle pinun
            long j = 0;//pre piun
           
            string rezult = "";//ispis na kraju sa pottezima
            long brjac = 0;//brojac poteza
            char poslednji = ' ';//provera da li moze taja potez
            bool ok = true;
            while (ok && (k!=post.Length && j!=pre.Length))
            {

                long poslednji1;
                if (k == post.Length) 
                {
                    poslednji1=int.MaxValue;
                }
                else
                {
                    poslednji1 = post[k];
                }
                long poslednji2;
                if (j == pre.Length)
                {
                    poslednji2 = int.MaxValue;
                }
                else
                {
                    poslednji2= pre[j];
                }
                if (poslednji1 <= poslednji2 && poslednji != '1')
                    {
                        brjac++;
                        poslednji = '1';
                        rezult += '1';
                        k++;
                    }
                    else if (poslednji1< poslednji2 && poslednji == '1')
                    {
                        brjac++;
                        poslednji = '2';
                        rezult += '2';
                        j++;
                    }
                    else if (poslednji1 > poslednji2 && poslednji != '2')
                    {
                        brjac++;
                        poslednji = '2';
                        rezult += '2';
                        j++;
                    }
                    else
                    {
                        tr++;
                        poslednji = '3';
                        rezult += '3';
                        brjac++;
                    }
                    long k1 = k;
                    long j2 = j;
                    while (k1 < ps)
                    {
                        post[k1] -= 1;
                        if (post[k1] == tr) { ok = false; break; }
                        k1++;

                    }
                    while (j2 < pr)
                    {

                        pre[j2] -= 1;
                        if (pre[j2] == tr) { ok = false; break; }
                        j2++;
                    }
                   
                
                }
            Console.WriteLine(brjac);
            Console.WriteLine(rezult);
        }
    }
}