#include <bits/stdc++.h>
using namespace std;
long long n, a[3003], b[3003], c[3003], dp[3003][4];
void mxz(long long &a, long long b) { a = (a > b ? a : b); }
void Solve() {
  cin >> n;
  for (long long i = 1, _b = n; i <= _b; i++) cin >> a[i];
  for (long long i = 1, _b = n; i <= _b; i++) cin >> b[i];
  for (long long i = 1, _b = n; i <= _b; i++) cin >> c[i];
  if (n == 1) {
    cout << a[1];
    return;
  }
  dp[1][0] = b[1];
  dp[1][1] = b[1];
  dp[1][2] = a[1];
  dp[1][3] = a[1];
  for (long long i = 2, _b = n - 1; i <= _b; i++) {
    dp[i][0] = max(dp[i - 1][3], dp[i - 1][2]) + c[i];
    dp[i][1] = max(dp[i - 1][0], dp[i - 1][1]) + b[i];
    dp[i][2] = max(dp[i - 1][3], dp[i - 1][2]) + b[i];
    dp[i][3] = max(dp[i - 1][0], dp[i - 1][1]) + a[i];
  }
  dp[n][0] = max(dp[n - 1][3], dp[n - 1][2]) + b[n];
  dp[n][1] = max(dp[n - 1][0], dp[n - 1][1]) + a[n];
  dp[n][2] = max(dp[n - 1][3], dp[n - 1][2]) + b[n];
  dp[n][3] = max(dp[n - 1][0], dp[n - 1][1]) + a[n];
  cout << *max_element(dp[n], dp[n] + 4);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int Test_numbers = 1;
  while (Test_numbers--) Solve();
  return 0;
}
