import numpy as np



N = int(eval(input()))

dp = np.zeros((N+1, 3))  # （i日目にa, b, cを行って）i日目までに得られる幸福度の最大値

"""

i日目にaを選んだ場合

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

i日目にbを選んだ場合

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

i-1日目にcを選んだ場合

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

"""



for i in range(1, N+1):

    a, b, c = list(map(int, input().split()))

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

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

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



print((int(max(dp[-1, :]))))

import sys

input = sys.stdin.readline

sys.setrecursionlimit(10 ** 7)

import bisect

import numpy as np



N = int(eval(input()))

ABC = np.array([np.array(list(map(int, input().split()))) for _ in range(N)])



dp = np.ones((N, 3))*-float("inf")



dp[0] = ABC[0]



for i in range(1, N):

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

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

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



print((int(max(dp[-1]))))
import numpy as np

N = int(eval(input()))
dp = np.zeros((N + 1, 3))  # （i日目にa, b, cを行って）i日目までに得られる幸福度の最大値
"""
i日目にaを選んだ場合
dp[i, 0] = max(dp[i-1, 1], dp[i-1, 2]) + a
i日目にbを選んだ場合
dp[i, 1] = max(dp[i-1, 0], dp[i-1, 2]) + b
i-1日目にcを選んだ場合
dp[i, 2] = max(dp[i-1, 0], dp[i-1, 1]) + c
"""
for i in range(1, N + 1):
    a, b, c = list(map(int, input().split()))
    dp[i, 0] = max(dp[i - 1, 1], dp[i - 1, 2]) + a
    dp[i, 1] = max(dp[i - 1, 0], dp[i - 1, 2]) + b
    dp[i, 2] = max(dp[i - 1, 0], dp[i - 1, 1]) + c
print((int(max(dp[-1, :]))))

import sys

input = sys.stdin.readline
sys.setrecursionlimit(10**7)
import bisect
import numpy as np

N = int(eval(input()))
ABC = np.array([np.array(list(map(int, input().split()))) for _ in range(N)])
dp = np.ones((N, 3)) * -float("inf")
dp[0] = ABC[0]
for i in range(1, N):
    dp[i, 0] = max(dp[i - 1, 1], dp[i - 1, 2]) + ABC[i, 0]
    dp[i, 1] = max(dp[i - 1, 0], dp[i - 1, 2]) + ABC[i, 1]
    dp[i, 2] = max(dp[i - 1, 0], dp[i - 1, 1]) + ABC[i, 2]
print((int(max(dp[-1]))))

+import sys + +input = sys.stdin.readline +sys.setrecursionlimit(10**7) +import bisect -dp = np.zeros((N + 1, 3))  # （i日目にa, b, cを行って）i日目までに得られる幸福度の最大値 -""" -i日目にaを選んだ場合 -dp[i, 0] = max(dp[i-1, 1], dp[i-1, 2]) + a -i日目にbを選んだ場合 -dp[i, 1] = max(dp[i-1, 0], dp[i-1, 2]) + b -i-1日目にcを選んだ場合 -dp[i, 2] = max(dp[i-1, 0], dp[i-1, 1]) + c -""" -for i in range(1, N + 1): -    a, b, c = list(map(int, input().split())) -    dp[i, 0] = max(dp[i - 1, 1], dp[i - 1, 2]) + a -    dp[i, 1] = max(dp[i - 1, 0], dp[i - 1, 2]) + b -    dp[i, 2] = max(dp[i - 1, 0], dp[i - 1, 1]) + c -print((int(max(dp[-1, :])))) +ABC = np.array([np.array(list(map(int, input().split()))) for _ in range(N)]) +dp = np.ones((N, 3)) * -float("inf") +dp[0] = ABC[0] +for i in range(1, N): +    dp[i, 0] = max(dp[i - 1, 1], dp[i - 1, 2]) + ABC[i, 0] +    dp[i, 1] = max(dp[i - 1, 0], dp[i - 1, 2]) + ABC[i, 1] +    dp[i, 2] = max(dp[i - 1, 0], dp[i - 1, 1]) + ABC[i, 2] +print((int(max(dp[-1]))))