#include <fstream>
#include <iostream>
using namespace std;

const int inf = 0x3f3f3f3f, kMaxN = 1000005;
ifstream in("points.in");

int dp[kMaxN][4], e[kMaxN][4];

void get_max(int &a, int b) {
	if (a < b)
		a = b;
}

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j < 4; ++j)
			cin >> e[i][j];
	for (int i = 0; i <= n + 1; ++i)
		for (int j = 0; j < 4; ++j)
			dp[i][j] = -inf;
	dp[1][1] = dp[1][2] = 0;
	for (int i = 2; i <= n + 1; ++i) {
    	get_max(dp[i][1], dp[i - 1][1]);
		get_max(dp[i][2], dp[i - 1][1]);

		get_max(dp[i][3], dp[i - 1][2] + e[i - 1][2]);
		get_max(dp[i][1], dp[i - 1][2] + e[i - 1][1]);

		get_max(dp[i][1], dp[i - 1][3] + e[i - 1][2]);
		get_max(dp[i][3], dp[i - 1][3] + e[i - 1][3]);
	}
	cout << dp[n + 1][1] << '\n';
	return 0;
}