#include <iostream>
#include <vector>
using namespace std;
struct node {
int price, time;
};
vector<node> v;
int n, op, price, tim, money = 0;
void insert (int p, int t){
node o;
o.price = p;
o.time = t;
v.push_back (o);
if (t - v[0].time > 45)v.erase (v.begin ());
money += p;
}
void use (int m, int ec, int ty){
if (v.size () == 0){
money += m;
return;
}
if (v[ec].price >= m && ty - v[ec].time <= 45){
v.erase (v.begin ());
return;
}
if (ec >= v.size () - 1){
money += m;
return;
}
use (m, ec + 1, ty);
}
int main (){
cin >> n;
for (int i = 0; i < n; i++){
cin >> op >> price >> tim;
if (op)use (price, 0, tim);
else insert (price, tim);
}
cout << money;
return 0;
}
全挂了不知道为啥