def get_i() #空白区切の入力を数値(整数)の配列で返す
  return gets.chomp.split(" ").map(&:to_i)
end
def get_f() #空白区切の入力を数値(実数)の配列で返す
  return gets.chomp.split(" ").map(&:to_f)
end
def get() #空白区切の入力を文字列の配列で返す
  return gets.chomp.split(" ")
end
def get_nsp() #入力されたものを一文字ずつに区切った文字列の配列で返す
  return gets.chomp.split("")
end
def yn_judge(bool,y="Yes",n="No")
  return bool ? y : n 
end

n=gets.to_i
abc=Array.new(3).map{Array.new(n)}

n.times do|i|
  abc[i]=get_i
end
dp=Array.new(3).map{Array.new(n)}

dp[0][0]=abc[0][0]
dp[1][0]=abc[0][1]
dp[2][0]=abc[0][2]
3.times do|i|
  sel=i
  for j in 1..n-1
    dp[i][j]=dp[i][j-1]
    if abc[j][(sel+1)%3]>=abc[j][(sel+2)%3]
      dp[i][j]+=abc[j][(sel+1)%3]
      sel=(sel+1)%3
    else
      dp[i][j]+=abc[j][(sel+2)%3]
      sel=(sel+2)%3
    end
  end 
end
puts [dp[0][n-1],dp[1][n-1],dp[2][n-1]].max