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

#include <algorithm>

#include <cstring>

const int maxn = 3e5 + 5;

using namespace std;



int N;

int a[maxn][4];

int dp[maxn][4];

int main()

{

	scanf("%d", &N);

	for(int i = 1;i <= N;i++)

	{

		for(int j = 1;j <= 3;j++)		

		{

			scanf("%d", &a[i][j]);

		}

	}

	memset(dp, 0, sizeof dp);

	for(int i = 1;i <= 3;i++)

		dp[1][i] = a[1][i];

	for(int i = 2;i <= N;i++)

	{

		dp[i][1] = max(dp[i - 1][2] + a[i][1], dp[i - 1][3] + a[i][1]);

		dp[i][2] = max(dp[i - 1][1] + a[i][2], dp[i - 1][3] + a[i][2]);

		dp[i][3] = max(dp[i - 1][1] + a[i][3], dp[i - 1][2] + a[i][3]);

	}

	int ans = 0;

	for(int i = 1;i <= 3;i++)

		ans = max(dp[N][i], ans);

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

	return 0;	

}

// Faster C++ solution for the same problem (measured speedup: 5.108836673721676x):
#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;

    }

}