#include <bits/stdc++.h>
using namespace std;
const int MN = 3011;
int n, a[MN], b[MN], c[MN], sumb[MN];
int f[2][MN];
void update(int& x, int val) { x = max(x, val); }
int main() {
  ios ::sync_with_stdio(false);
  while (cin >> n) {
    for (int i = (1), _b = (n); i <= _b; i++) cin >> a[i];
    for (int i = (1), _b = (n); i <= _b; i++) {
      cin >> b[i];
      sumb[i] = sumb[i - 1] + b[i];
    }
    for (int i = (1), _b = (n); i <= _b; i++) cin >> c[i];
    if (n == 1) {
      cout << a[1] << endl;
      continue;
    }
    if (n == 2) {
      cout << max(a[1] + b[2], a[2] + b[1]) << endl;
      continue;
    }
    memset(f, -0x3f, sizeof f);
    for (int i = (1), _b = (n); i <= _b; i++) {
      f[0][i] = sumb[i - 1] + a[i];
      for (int j = (1), _b = (i - 1); j <= _b; j++)
        update(f[0][i], f[1][j] + sumb[i - 1] - sumb[j] + a[i]);
      for (int j = (1), _b = (i - 1); j <= _b; j++)
        update(f[1][i], f[0][j] + sumb[i - 1] - sumb[j] + c[i]);
    }
    int res = -1000111000;
    for (int i = (1), _b = (n); i <= _b; i++)
      update(res, f[0][i] + sumb[n] - sumb[i]);
    cout << res << endl;
  }
}
