#include "bits/stdc++.h"
using namespace std;
#define mod 998244353
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define N 24
#define maxn 600005
#define INF (ll)1e18
ll n;
pair<ll,pair<ll,ll> > p[maxn];
vector<pair<ll,ll> > a,b,c;
ll used[maxn];
void solve(){
cin>>n;
for(ll i=1; i<=n; i++)cin>>p[i].ff>>p[i].ss.ff>>p[i].ss.ss;
for(ll i=1; i<=n; i++){
a.pb({p[i].ff,i});
b.pb({p[i].ss.ff,i});
c.pb({p[i].ss.ss,i});
}
sort(a.begin(),a.end(),greater<pair<ll,ll> >());
sort(b.begin(),b.end(),greater<pair<ll,ll> >());
sort(c.begin(),c.end(),greater<pair<ll,ll> >());
ll i=0,j=0,x=0;
while(i<n and j<n and x<n){
ll id=a[i].ss,id1=b[j].ss,id2=c[x].ss;
if(used[id])i++;
else if(used[id1])j++;
else if(used[id2])x++;
else if(p[id].ss.ff>=p[id1].ss.ff or p[id].ss.ss>=p[id2].ss.ss)used[id]=1;
else if(p[id1].ff>=p[id].ff or p[id1].ss.ss>=p[id2].ss.ss)used[id1]=1;
else if(p[id2].ff>=p[id].ff or p[id2].ss.ff>=p[id1].ss.ff)used[id2]=1;
else{
cout<<p[id].ff+p[id1].ss.ff+p[id2].ss.ss<<'\n';
return;
}
}
cout<<-1<<'\n';
}
int main(){
// freopen("in.txt","w",stdout);
// freopen("out.txt","r",stdin);
ios_base::sync_with_stdio(0); cin.tie(0);
ll t=1;
// cin>>t;
while(t--) solve();
}