WA#3,#9,#10,实在调不出来了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
#include<utility>
#define MP make_pair
#define inf 0x3f3f3f3f
using namespace std;
namespace INPUT{
char buf[1<<20],*p1,*p2;
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?EOF:*p1++)
}
using namespace INPUT;
template<typename T>
inline T read(){
T x=0,p=1;
char ch=gc();
while(ch<'0'||ch>'9'){
if(ch=='-') p=-1;
ch=gc();
}
while(ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+(ch^48);
ch=gc();
}
return x*p;
}
const int N=1005;
vector<pair<int,int>>G[N];
void add(int u,int v,int w){
G[u].push_back(MP(v,w));
}
int dis[N];
bool vis[N];
queue<int>q;
void spfa(int s){
memset(dis,inf,sizeof(dis));
dis[s]=0;
q.push(s);
while(!q.empty()){
int u=q.front();
q.pop(),vis[u]=0;
for(auto ed:G[u]){
int v=ed.first,w=ed.second;
if(dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
if(!vis[v]) q.push(v),vis[v]=1;
}
}
}
}
int n;
#define R 1000
int main(){
freopen("data.in","r",stdin);
n=read<int>();
for(int i=1;i<=n;i++){
int l=read<int>();
int r=read<int>();
add(r,l-1,-read<int>());
}
for(int i=1;i<=R;i++) add(R+1,i,0);
for(int i=1;i<=R;i++) add(i,i-1,0);
spfa(R+1);
int ans=inf;
for(int i=0;i<=R;i++) ans=min(ans,dis[i]);
for(int i=0;i<=R;i++) dis[i]-=ans;
for(int i=0;i<=R;i++) ans=max(ans,dis[i]);
printf("%d",ans);
}