#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
inline long long int gcd(long long int a, long long int b) {
  return (b == 0) ? a : gcd(b, a % b);
}
inline long long int lcm(long long int a, long long int b) {
  return (a * b) / gcd(a, b);
}
template <class type>
type power(type x, long long int n) {
  type temp;
  long long int y = n;
  if (y == 0) return 1;
  temp = power(x, y / 2);
  return ((y % 2) ? ((y > 0) ? x * temp * temp : (temp * temp) / x)
                  : temp * temp);
}
void c_p_c() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
long long int h[2][100001];
long long int dp[2][100001];
long long int n;
long long int f(long long int i, long long int j) {
  if (j == n) {
    return 0;
  }
  if (dp[i][j] != -1) {
    return dp[i][j];
  }
  dp[i][j] = h[i][j] + f(1 - i, j + 1);
  dp[i][j] = max(dp[i][j], (f(1 - i, j + 1)));
  dp[i][j] = max(dp[i][j], (f(i, j + 1)));
  return dp[i][j];
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  c_p_c();
  {
    cin >> n;
    for (long long int i = 0; i <= 1; i++) {
      for (long long int j = 0; j <= n - 1; j++) {
        cin >> h[i][j];
      }
    }
    fill(dp[0], dp[0] + n, -1);
    fill(dp[1], dp[1] + n, -1);
    cout << max(f(0, 0), f(1, 0)) << "\n";
  }
  return 0;
}
