// https://szkopul.edu.pl/problemset/problem/rr3lU0T8pNn2mAbL07wBTZT3/site/?key=statement
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int sizik = 3 * 100 * 1001;
#define ar std::array
#define pr std::pair
#define vec std::vector
typedef vec<vec<int>> _kra;
constexpr int INF = INT64_MAX;
int r[sizik], d[sizik], p[sizik];
int isNonZero[sizik];
int n;
int m[sizik];
void brut() {
int ans = INF;
for (int i = isNonZero[0]; i <= n; i++) {
for (int j = isNonZero[1]; j <= n; j++) {
for (int k = isNonZero[2]; k <= n; k++) {
if ((i == j) || (i == k) || (j == k)) continue;
int local_ans = 0;
for (int z = 1; z <= n; z++) {
if (z == i) {
local_ans += d[z] + p[z];
} else if (z == j) {
local_ans += r[z] + p[z];
} else if (z == k) {
local_ans += r[z] + d[z];
} else {
local_ans += std::min({d[z] + p[z], r[z] + p[z], r[z] + d[z]});
}
}
ans = std::min(ans, local_ans);
}
}
}
std::cout << ans << '\n';
}
int cq = 0;
void wzor() {
std::vector<std::pair<int, int>> u1, u2, u3;
for (int i = 1; i <= n; i++) {
u1.push_back({m[i] - r[i], i});
u2.push_back({m[i] - d[i], i});
u3.push_back({m[i] - p[i], i});
}
std::sort(u1.begin(), u1.end());
std::sort(u2.begin(), u2.end());
std::sort(u3.begin(), u3.end());
int ans = INF;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 3; k++) {
if (isNonZero[0] == 0) {
u1[i].second = 0;
u1[i].first = 0;
}
if (isNonZero[1] == 0) {
u2[j].second = 0;
u2[j].first = 0;
}
if (isNonZero[2] == 0) {
u3[k].second = 0;
u3[k].first = 0;
}
if ((u1[i].second == u2[j].second && u1[i].second != 0) || (u3[k].second == u2[j].second && u2[j].second != 0) ||
(u1[i].second == u3[k].second && u1[i].second != 0))
continue;
ans = std::min(ans, cq + u1[i].first + u2[j].first + u3[k].first);
}
}
}
std::cout << ans << '\n';
}
void solve() {
std::cin >> n;
for (int i = 1; i <= n; i++) {
std::cin >> r[i] >> d[i] >> p[i];
m[i] = std::max({r[i], p[i], d[i]});
cq += r[i] + d[i] + p[i] - m[i];
if (r[i] != 0) isNonZero[0] = 1;
if (d[i] != 0) isNonZero[1] = 1;
if (p[i] != 0) isNonZero[2] = 1;
}
if (n <= 5) {
brut();
return;
}
wzor();
}
int32_t main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}