#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; inline ll f(ll a, ll b) { return a == b ? a : 0; } int main() { cin.tie(nullptr)->sync_with_stdio(false); int n; cin >> n; vector> v(n); rep(i, n) cin >> v[i].first >> v[i].second; vector dp(n + 1, vector(2, -1e18)); dp[1][0] = dp[1][1] = f(v[0].first, v[0].second); for (int i = 1; i < n; ++i) { ll val = f(v[i].first, v[i].second); dp[i + 1][0] = max(dp[i][0] + f(v[i - 1].second, v[i].first) + val, dp[i][1] + f(v[i - 1].first, v[i].first)); dp[i + 1][1] = max(dp[i][0] + f(v[i - 1].second, v[i].second) + val, dp[i][1] + f(v[i - 1].first, v[i].second)); } cout << max(dp[n][0], dp[n][1]) << '\n'; return 0; }