// Slower C++ solution:
#include <iostream>

using namespace std;



int main()

{



    int dias;

    cin >> dias;

    int atividades[dias][3];

    int felicidadeDasAtividades[dias][3];



    for (int i = 0; i < dias; i++)

    {

        cin >> atividades[i][0] >> atividades[i][1] >> atividades[i][2];

        felicidadeDasAtividades[i][0] = felicidadeDasAtividades[i][1] = felicidadeDasAtividades[i][2] = 0;

    }



    for (int i = dias - 1; i >= 0; i--)

    {

        if (i == dias - 1)

        {

            felicidadeDasAtividades[i][0] = atividades[i][0];

            felicidadeDasAtividades[i][1] = atividades[i][1];

            felicidadeDasAtividades[i][2] = atividades[i][2];

        }

        else

        {

            if (felicidadeDasAtividades[i + 1][2] >= felicidadeDasAtividades[i + 1][1])

            {

                felicidadeDasAtividades[i][0] = atividades[i][0] + felicidadeDasAtividades[i + 1][2];

            }

            else

            {

                felicidadeDasAtividades[i][0] = atividades[i][0] + felicidadeDasAtividades[i + 1][1];

            }



            if (felicidadeDasAtividades[i + 1][2] >= felicidadeDasAtividades[i + 1][0])

            {

                felicidadeDasAtividades[i][1] = atividades[i][1] + felicidadeDasAtividades[i + 1][2];

            }

            else

            {

                felicidadeDasAtividades[i][1] = atividades[i][1] + felicidadeDasAtividades[i + 1][0];

            }



            if (felicidadeDasAtividades[i + 1][1] >= felicidadeDasAtividades[i + 1][0])

            {

                felicidadeDasAtividades[i][2] = atividades[i][2] + felicidadeDasAtividades[i + 1][1];

            }

            else

            {

                felicidadeDasAtividades[i][2] = atividades[i][2] + felicidadeDasAtividades[i + 1][0];

            }

        }



    }

    int melhorEscolha = 0;

    if (felicidadeDasAtividades[0][0] >= felicidadeDasAtividades[0][1] && felicidadeDasAtividades[0][0] >= felicidadeDasAtividades[0][2])

    {

        cout << felicidadeDasAtividades[0][0] << endl;

    }

    else if (felicidadeDasAtividades[0][1] >= felicidadeDasAtividades[0][0] && felicidadeDasAtividades[0][1] >= felicidadeDasAtividades[0][2])

    {

        cout << felicidadeDasAtividades[0][1] << endl;

    }

    else if (felicidadeDasAtividades[0][2] >= felicidadeDasAtividades[0][0] && felicidadeDasAtividades[0][2] >= felicidadeDasAtividades[0][1])

    {

        cout << felicidadeDasAtividades[0][2] << endl;

    }

}


// Faster C++ solution for the same problem (measured speedup: 5.197710317592534x):
#include<cstdio>

#include<algorithm>

using namespace std;

const int maxn = 1e5 + 10;

int dp[maxn][3];

int abc[3];

int main()

{

	int n;

	while(~scanf("%d",&n)){

		scanf("%d%d%d",&abc[0],&abc[1],&abc[2]);

		dp[0][0] = abc[0];

		dp[0][1] = abc[1];

		dp[0][2] = abc[2];

		for(int i = 1; i<n; i++){

			scanf("%d%d%d",&abc[0],&abc[1],&abc[2]);

			dp[i][0] = max(dp[i-1][1],dp[i-1][2]) + abc[0];

			dp[i][1] = max(dp[i-1][0],dp[i-1][2]) + abc[1];

			dp[i][2] = max(dp[i-1][0],dp[i-1][1]) + abc[2];

		} 

		int ans = max(dp[n-1][0],dp[n-1][1]);

		ans = max(ans,dp[n-1][2]);

		printf("%d\n",ans);

	}

	return 0;

 }