#include <iostream>
#include <vector>
using namespace std;

int solve(const vector<int> & a, int pos, vector<int>& solutions)
{
    if (pos >= a.size())
        return 0;
    if (solutions[pos] != -1)
        return solutions[pos];
    return max(solve(a, pos + 1, solutions), a[pos] + solve(a, pos + 2, solutions));
}

int main() {
    int n;
    cin >> n;
    vector<int> a(n), solutions(n, -1);
    for (int i = 0; i < n; i++) cin >> a[i];
    solutions[n] = 0;
    solutions[n - 1] = a[n - 1];
    cout << solve(a, 0, solutions) << endl;

    
    // dynamic programming with iteration
    vector<int> dp(n + 1, 0);
    dp[1] = a[0];
    for (int i = 2; i <= n; i++)
    {
      dp[i] = max(a[i - 1] + dp[i - 2], dp[i - 1]);
    }
    cout << dp[n] << endl;
    return 0;

}
