#include <stdio.h>
char a[200020];
int Da,Db,N,zera;
long long int r;
//wczytuje liczbe do pocz. fragmentu tabeli i porownuje z poprzednimi wartosciami
// -> 1 nastepna liczba jest wieksza
// -> 2 nastepna liczba jest mniejsza
// -> 0 poczatki sa takie same
int readnumb(void)
{
int i,z,p,f;
char c[12];
scanf("%d",&z);
p=11; while(z) {c[p]=(char)(z%10); p--; z/=10;}
f = 0;
Db = 11-p;
if(Da<Db) {Da=Db; f=1;}
for(i=0;i<Db;++i)
{
if(a[i]<c[p+i+1] && f==0) f = 1;
if(a[i]>c[p+i+1] && f==0) f = 2;
a[i]=c[p+i+1];
}
return f;
}
void dodaj(void)
{
int i,f=1;
char rr;
i=Da-1;
while(f && i>=Db)
{
rr=(char)((a[i]+f)%10);
f=(char)((a[i]+f)/10);
a[i]=rr;
i--;
}
if (f) {for(i=Db;i<=Da;++i) a[i]=0; zera=1; r+=Da-Db+1; Da++;} else r+=Da-Db;
return;
}
int main()
{
int w,i;
scanf("%d",&N);
while(N--)
{
w = readnumb();
if (w==1) {r+=Da-Db; if(zera==0) {for(i=Db;i<=Da;++i) a[i]=0; zera=1;} else {for(i=Db;i<Db+12;++i) a[i]=0;}}
if (w==2) {r+=Da-Db+1; Da++; if(zera==0) {for(i=Db;i<Da;++i) a[i]=0; zera=1;} else {for(i=Db;i<Db+12;++i) a[i]=0;}}
if (w==0) {dodaj();}
}
printf("%lld\n",r);
return 0;
}