#include<stdio.h>
#include<string.h>
#define max(a,b) (a>b?a:b)
char B[15005][5];
int N,d,p,q,res;


int cnt(int y,int x,int c)
{
	int t=0;
	for(int i=0;i<c;i++)
		t+=B[y][x+i];
	return t;
}

void dbg()
{
	for(int i=0;;i++,puts(""))
	{
		int f=cnt(i,0,5);
		if(!f)break;
		for(int j=0;j<5;j++)
			putchar(B[i][j]?'x':'o');
	}
	puts("");
}


int sch(int h,int w,int p,int y)
{
	int i;
	for(i=y;i>=0;)
	{
		int l=cnt(i,p,w);
		if(!l)
		{
			if(i&&cnt(i-1,p,w)==0)
				i--;
			else
				return i;
		}
		else
		{
			if(cnt(i+1,p,w)==0)
				i++;
			else
				return i;
		}
	}
	return i;
}

void Tset(int y,int x,int h,int w)
{
	for(int i=0;i<h;i++)
		for(int j=0;j<w;j++)
			B[y+i][x+j]=1;
}

void flsh()
{
	for(int i=0;;)
	{
		int j,f=cnt(i,0,5);
		if(!f)break;
		if(f==5)
		{
			int tmp=sizeof(char)*(6000*5-i*(5+1));
			memmove(B[i],B[i+1],sizeof(char)*25000);
		}
		else
			i++;
	}
}

int r()
{
	int res=0;
	for(int i=0;;i++)
	{
		int t=cnt(i,0,5);
		if(t==0)break;
		else if(t==5)continue;
		else res+=t;
	}
	return res;
}

int main()
{
	for(;scanf("%d",&N),N;)
	{
		int h=0,t;
		res=0;
		memset(B,0,sizeof(B));
		for(int i=0;i<N;i++)
		{
			scanf("%d%d%d",&d,&p,&q);
			res+=p;
			q--;
			t=sch(d==1?1:p,d==1?p:1,q,h);
			Tset(t,q,d==1?1:p,d==1?p:1);
			if(d==2)t+=p;
			else t++;
			h=max(t,h);
			flsh();
		}
		printf("%d\n",r());
	}
}