#include using namespace std; using lint = long long; template using V = vector; template using VV = V< V >; template auto rle(Itr first, Itr last) { V< pair > res; for (; first != last; ++first) { if (res.empty() or res.back().first != *first) { res.emplace_back(*first, 1); } else { ++res.back().second; } } return res; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int n; cin >> n; V<> a(n); for (auto&& e : a) cin >> e; V<> dp(2); for (const auto& e : rle(begin(a), end(a))) { V<> ndp(2); ndp[0] = max(dp[0], dp[1]); ndp[1] = dp[0] + e.second; swap(dp, ndp); } cout << max(dp[0], dp[1]) << '\n'; }