#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define SZ(s) (int)s.size()
const int N = 150005;
int n;
int x[N], y[N], z[N];
int ok[N];
vector <pair <int, int>> a, b, c;
void solve() {
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> x[i] >> y[i] >> z[i];
a.pb({x[i], i});
b.pb({y[i], i});
c.pb({z[i], i});
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
sort(c.begin(), c.end());
while(SZ(a) and SZ(b) and SZ(c)) {
vector <int> v;
v.pb(a.back().ss);
v.pb(b.back().ss);
v.pb(c.back().ss);
int f = 1;
for(auto i : v) {
int cnt = 0;
if(a.back().ff == x[i]) cnt++;
if(b.back().ff == y[i]) cnt++;
if(c.back().ff == z[i]) cnt++;
if(cnt > 1) ok[i] = 1;
}
if(ok[a.back().ss]) {
a.pop_back();
f = 0;
}
if(ok[b.back().ss]) {
b.pop_back();
f = 0;
}
if(ok[c.back().ss]) {
c.pop_back();
f = 0;
}
if(f) {
cout << 1LL * a.back().ff + b.back().ff + c.back().ff << '\n';
return;
}
}
cout << -1 << '\n';
}
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
// freopen("minimum.inp", "r", stdin);
// freopen("minimum.out", "w", stdout);
int t = 1;
while(t--) {
solve();
}
return 0;
}