#include <bits/stdc++.h>
using namespace std;
std::vector<int> a, b, c;
int dp[3009][2];
int n;
int solve(int pos, int pre) {
  if (dp[pos][pre] != -1) {
    return dp[pos][pre];
  }
  int ans = INT_MIN;
  if (pos == n - 1) {
    if (pre == 0)
      return dp[pos][pre] = a[n - 1];
    else
      return dp[pos][pre] = b[n - 1];
  }
  if (pre == 0) {
    ans = max(ans, solve(pos + 1, 1) + a[pos]);
    ans = max(ans, solve(pos + 1, 0) + b[pos]);
    return dp[pos][pre] = ans;
  }
  if (pre == 1) {
    ans = max(ans, solve(pos + 1, 1) + b[pos]);
    ans = max(ans, solve(pos + 1, 0) + c[pos]);
    return dp[pos][pre] = ans;
  }
}
int main() {
  int t, i, j, k, m;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    a.push_back(x);
  }
  for (i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    b.push_back(x);
  }
  for (i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    c.push_back(x);
  }
  memset(dp, -1, sizeof(dp));
  cout << solve(0, 0) << endl;
  return 0;
}
