import kotlin.math.min fun List.toTriple(): Triple { return Triple(this[0], this[1], this[2]) } fun solve(N: Int, C: Array>): Int { val T = Array>(N) { Triple(0, 0, 0) } T[0] = C[0] for (i in 1 until N) { T[i] = Triple( min(T[i - 1].second, T[i - 1].third) + C[i].first, min(T[i - 1].first, T[i - 1].third) + C[i].second, min(T[i - 1].first, T[i - 1].second) + C[i].third ) } return minOf(T[N - 1].first, T[N - 1].second, T[N - 1].third) } fun main() { val N = readln().toInt() val C = Array>(N) { readln().split(' ').map { s: String -> s.toInt() }.toTriple() } println(solve(N, C)) }