
#include <bits/stdc++.h>
using namespace std;
vector <int> k;//a
vector <int> c;//b
int dp(int N,  int a [] ,int b [] , int w,char q){

	if (w==-1) return 0;
	if(q=='a'){
		if(w==0) return a[0];
		if(k[w]>-1) return k[w];
		
		int x = max(dp(N,a,b,w-1,'a'),dp(N,a,b,w-1,'b'))+a[w];
		k[w]=x;
		return x;
	}
	
	if(w==0) return b[0];
	if(c[w]>-1)return c[w];
	int x = max(dp(N,a,b,w-2,'a'),dp(N,a,b,w-2,'b'))+b[w];
}
int tempo_massimo(int N, int a[], int b[]){
	k.resize(N);
	c.resize(N);
	for(int i=0;i<N;i++){
		k[i]=-1;
		c[i]=-1;
		
	}
	
	int w=N-1;
	return max(dp(N,a,b,w,'a'),dp(N,a,b,w,'b'));
	
}

