#include <algorithm>
using namespace std;
//x爲時間節點,flage標記開始節點爲1,結束節點爲-1,k(可以省略,題目有給定這個區間有幾個時加上)記錄這個時間節點有幾個
struct node{
int x,flage,k;};
node e[5000];
bool cmp(node a,node b){
return a.x<b.x||a.x==b.x&&a.flage<b.flage;//時間節點靠前的先處理,結束時間與開始時間一致時,結束時間先處理,結束的可以騰出空間
}
int main(){
int n,E;
while(scanf("%d",&n)&&n){
int s,t,k;
E=0;
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&s,&t,&k);
//將區間分爲兩個端點
e[E].x=s;
e[E].k=k;
e[E++].flage=1;
e[E].x=t;
e[E].k=k;
e[E++].flage=-1;
}
sort(e,e+E,cmp);
int sum=0,ans=0;
for(int i=0;i<E;i++){
sum+=e[i].flage*e[i].k;//flage爲正時需要有k個區間重疊,flage爲負時,有k個區間不再重疊
ans=max(ans,sum);//ans記錄中間所需的最大區間
}
printf("%d\n",ans);
}
return 0;
}