#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3001;
int dp[MAXN][2];
int n;
int a[3][MAXN];
void read() {
  scanf("%d", &n);
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < n; j++) {
      scanf("%d", &a[i][j]);
    }
  }
}
int go(int pos, bool prev) {
  if (pos == n - 1) {
    if (prev) {
      return a[1][pos];
    } else {
      return a[0][pos];
    }
  }
  int &res = dp[pos][prev];
  if (res != -1) {
    return res;
  }
  res = 0;
  if (prev) {
    res = max(go(pos + 1, 1) + a[1][pos], go(pos + 1, 0) + a[2][pos]);
  } else {
    res = max(go(pos + 1, 1) + a[0][pos], go(pos + 1, 0) + a[1][pos]);
  }
  return res;
}
void solve() {
  memset(dp, -1, sizeof dp);
  int res = go(0, 0);
  printf("%d\n", res);
}
int main() {
  read();
  solve();
  return 0;
}
