// 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.212034863439915x):
#include <cstdio>

#include <algorithm>

using std::max;



#define MAXN 100003

int d[MAXN][3],a[MAXN][3];

int main(void)

{

    int i,N;

    scanf("%d",&N);

    for(i=0;i<N;i++)

    {

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

    }

    d[0][0]=a[0][0];

    d[0][1]=a[0][1];

    d[0][2]=a[0][2];

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

    {

        d[i][0]=a[i][0]+max(d[i-1][1],d[i-1][2]);

        d[i][1]=a[i][1]+max(d[i-1][0],d[i-1][2]);

        d[i][2]=a[i][2]+max(d[i-1][1],d[i-1][0]);

    }

    printf("%d\n",max(d[N-1][0],max(d[N-1][1],d[N-1][2])));



    return 0;

}