#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	int n, d, p, q, s, t;
	
	while(cin>>n&&n){
		vector<bool> vec[5];
		
		while(n--){
			cin >> d >> p >> q;
			q--;
			if(d == 1){
				t = -1;
				for(int i = q, k = 0; k < p; i++, k++){
					for(int j = vec[i].size()-1; j >= 0; j--){
						if(vec[i][j]){
							t = max(t, j);
						}
					}
				}
				
				for(int i = q, k = 0; k < p; i++, k++){
					while(vec[i].size() < (t+1)){
						vec[i].push_back(false);
					}
					vec[i].push_back(true);
				}
			} else {
				t = -1;
				for(int i = vec[q].size()-1; i >= 0; i--){
					if(vec[q][i]){
						t = i;
						break;
					}
				}
				s = 0;
				for(int i = t+1; i < vec[q].size() && s < p; i++, s++){
					vec[q][i] = true;
				}
				for(;s < p; s++){
					vec[q].push_back(true);
				}
			}
			t = vec[0].size();
			for(int i = 1; i < 5; i++){
				s = vec[i].size();
				t = min(s, t);
			}

			for(int i = t-1; i >= 0; i--){
				bool f = true;
				for(int j = 0; j < 5; j++){
					if(!vec[j][i]){
						f = false;
						break;
					}
				}
				
				if(f){
					for(int j = 0; j < 5; j++){
						vec[j].erase((vec[j].begin()+i));
					}
				}
			}
		}
		
		t = 0;
		for(int i = 0; i < 5; i++){
			for(int j = 0; j < vec[i].size(); j++){
				if(vec[i][j]){
					t++;
				}
			}
		}
		
		cout << t << endl;
	}
	
	return 0;
}