#include<cstdio>
#include<vector>

#define	pb	push_back

using namespace std;

typedef	vector<int>	vi;

char field[5000];

bool vanish(int u,int l){
	vi rem;
	for(int i=l;i>=u;i--){
		if(field[i]!=31)	rem.pb(i);
	}

	int rnum=rem.size(),h=l-u+1;
	if(rnum!=l){
		for(int i=0;i<rnum;i++)	field[l-i]=field[rem[i]];
		for(int i=u-1;i>=0;i--)	field[h-rnum+i]=field[i];
		for(int i=0;i<rnum;i++)	field[i]=0;
	}
}

int main(){
	for(int n;scanf("%d",&n),n;){
		for(int i=0;i<5000;i++)	field[i]=0;
		for(int t=0;t<n;t++){
			int type,len,p;	scanf("%d%d%d",&type,&len,&p);
			p--;

			char blk;
			if(type==1)	blk=((1<<len)-1)<<(5-p-len);
			else		blk=1<<(4-p);

			for(int i=0;i<=5000;i++){
				if(i==5000 || (field[i]&blk)!=0){
					if(type==1){
						field[i-1]|=blk;
						vanish(i-1,i-1);
					}
					else{
						for(int j=1;j<=len;j++)	field[i-j]|=blk;
						vanish(i-len,i-1);
					}
					break;
				}
			}
		}

		int cnt=0;
		for(int i=0;i<5000;i++){
			for(int j=0;j<5;j++)	if(field[i]&(1<<j))	cnt++;
		}
		printf("%d\n",cnt);
	}

	return 0;
}