#include <iostream>
#include <vector>
using namespace std;

int o[5011][5];

int yoko(int L,int R){
	for(int i = 5010 ; i > 0 ; i--){
		int f = 0;
		for(int j = L ; j <= R ; j++){
			if( o[i-1][j] ){
				f = 1;
			}
		}
		if( f ){
			for(int k = L ; k <= R ; k++)
				o[i][k] = 1;
			return 0;
		}
	}
	for(int i = L ; i <= R ; i++)
		o[0][i] = 1;
}
int tate(int x,int l){
	for(int i = 5010 ; i > 0 ; i--){
		int f = o[i-1][x];
		if( f ){
			for(int j = 0 ; j < l ; j++)
				o[i+j][x] = 1;
			return 0;
		}
	}
	
	for(int i = 0 ; i < l ; i++) o[i][x] = 1;
}
int eraser(){
	vector<int> v[5];
	for(int i = 0 ; i <= 5010 ; i++){
		if( o[i][0] && o[i][1] && o[i][2] && o[i][3] && o[i][4] ){
			o[i][0] = o[i][1] = o[i][2] = o[i][3] = o[i][4] = 0;
		}
		if( o[i][0] || o[i][1] || o[i][2] || o[i][3] || o[i][4] ){
			for(int j = 0 ; j < 5 ; j++)
				v[j].push_back(o[i][j]);
		}
	}
	for(int i = 0 ; i < 5011 ; i++)
		for(int j = 0 ; j < 5 ; j++)
			o[i][j] = 0;
	for(int i = 0 ; i < v[0].size() ; i++)
		for(int j = 0 ; j < 5 ; j++){
			o[i][j] = v[j][i];
		}
	
}
int main(){
	int n;
	while(cin >> n && n){
		for(int i = 0 ; i < 5011 ; i++)
			for(int j = 0 ; j < 5 ; j++)
				o[i][j] = 0;
		
		for(int i = 0 ; i < n ; i++){
			int d,l,x;
			cin >> d >> l >> x;
			x--;
			if( d == 1 ){
				yoko(x,x+l-1);
			}else{
				tate(x,l);
			}
			eraser();
		}
		int ans = 0;
		for(int i = 0 ; i < 5011 ; i++)
			for(int j = 0 ; j < 5 ; j++)
				ans += o[i][j];
		cout << ans << endl;
	}
}