#include<cstdio>
using namespace std;
int n,oqt,tqo,tqth,thqt,oqth,thqo,num[1000005],one,two,three,ans;
int main()
{
scanf("%d" ,&n);
for(int i=1;i<=n;i++)
{
scanf("%d" ,&num[i]);
if(num[i]==1)
one++;
else if(num[i]==2)
two++;
else
three++;
}
for(int i=1;i<=one;i++)
{
if(num[i]==2)
oqt++,printf("%d\n" ,oqt);
else if(num[i]==3)
oqth++,printf("%d\n" ,oqth);
}
for(int i=one+1;i<=two;i++)
{
if(num[i]==1)
tqo++,printf("%d\n" ,tqo);
else if(num[i]==3)
tqth++,printf("%d\n" ,tqth);
}
for(int i=two+1;i<=three;i++)
{
if(num[i]==1)
thqo++,printf("%d\n" ,thqo);
else if(num[i]==2)
thqt++,printf("%d\n" ,thqt);
if(oqt<=tqo)
ans+=oqt,tqo-=oqt,oqt=0,printf("%d %d\n" ,ans,oqt);
else
ans+=tqo,oqt-=tqo,tqo=0,printf("%d %d\n" ,ans,tqo);
if(oqth<=thqo)
ans+=oqth,thqo-=oqth,oqth=0,printf("%d %d\n" ,ans,oqth);
else
ans+=thqo,oqth-=thqo,thqo=0,printf("%d %d\n" ,ans,thqo);
if(tqth<=thqt)
ans+=tqth,thqt-=tqth,tqth=0,printf("%d %d\n" ,ans,tqth);
else
ans+=thqt,tqth-=thqt,thqt=0,printf("%d %d\n" ,ans,thqt);
printf("%d\n" ,ans);
return 0;
}