import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	} main {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int N = scan.nextInt(); N scan.nextInt() scan.nextInt scan int[][] A = new int[2][N]; A new int[2][N] 2 N for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		} int i = 0 ; int i = 0 ; i 0 i < 2 i 2 i++ i++ i {
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		} {
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		} for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			} int j = 0 ; int j = 0 ; j 0 j < N j N j++ j++ j {
				A[i][j] = scan.nextInt();
			} {
				A[i][j] = scan.nextInt();
			} A[i][j] = scan.nextInt() A[i][j] A[i] A i j scan.nextInt() scan.nextInt scan if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		} N==1 N 1 {
			System.out.println(A[0][0]+A[1][0]);
		} System.out.println(A[0][0]+A[1][0]) System.out.println System.out System System.out A[0][0]+A[1][0] A[0][0] A[0] A 0 0 A[1][0] A[1] A 1 0 {
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		} int[][] dp = new int[2][N]; dp new int[2][N] 2 N dp[0][0] = A[0][0] dp[0][0] dp[0] dp 0 0 A[0][0] A[0] A 0 0 for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			} int j = 0 ; int j = 0 ; j 0 j < N-1 j N-1 N 1 j++ j++ j {
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			} {
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			} if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				} j==0 j 0 {
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				} dp[j+1][0] = A[j+1][0]+dp[0][0] dp[j+1][0] dp[j+1] dp j+1 j 1 0 A[j+1][0]+dp[0][0] A[j+1][0] A[j+1] A j+1 j 1 0 dp[0][0] dp[0] dp 0 0 dp[0][j+1] = A[0][j+1]+dp[0][0] dp[0][j+1] dp[0] dp 0 j+1 j 1 A[0][j+1]+dp[0][0] A[0][j+1] A[0] A 0 j+1 j 1 dp[0][0] dp[0] dp 0 0 {
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				} dp[0][j+1] = A[0][j+1] + dp[0][j] dp[0][j+1] dp[0] dp 0 j+1 j 1 A[0][j+1] + dp[0][j] A[0][j+1] A[0] A 0 j+1 j 1 dp[0][j] dp[0] dp 0 j dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]) dp[1][j] dp[1] dp 1 j Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]) Math.max Math dp[0][j] + A[1][j] dp[0][j] dp[0] dp 0 j A[1][j] A[1] A 1 j dp[1][j-1] + A[1][j] dp[1][j-1] dp[1] dp 1 j-1 j 1 A[1][j] A[1] A 1 j dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]) dp[1][N-1] dp[1] dp 1 N-1 N 1 Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]) Math.max Math dp[0][N-1] + A[1][N-1] dp[0][N-1] dp[0] dp 0 N-1 N 1 A[1][N-1] A[1] A 1 N-1 N 1 dp[1][N-2] + A[1][N-1] dp[1][N-2] dp[1] dp 1 N-2 N 2 A[1][N-1] A[1] A 1 N-1 N 1 System.out.println(dp[1][N-1]) System.out.println System.out System System.out dp[1][N-1] dp[1] dp 1 N-1 N 1 String[] args args public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	}
} public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		
		int[][] A = new int[2][N];
		
		for(int i = 0 ; i < 2 ; i++){
			for(int j = 0 ; j < N ; j++){
				A[i][j] = scan.nextInt();
			}	
		}
		
		if(N==1){
			System.out.println(A[0][0]+A[1][0]);
		}
		else{
			int[][] dp = new int[2][N];
			dp[0][0] = A[0][0];

			
			for(int j = 0 ; j < N-1 ; j++){
				if(j==0){
					dp[j+1][0] = A[j+1][0]+dp[0][0] ;
					dp[0][j+1] = A[0][j+1]+dp[0][0] ;
				}
				else{
					dp[0][j+1] = A[0][j+1] + dp[0][j]; 
					dp[1][j] = Math.max(dp[0][j] + A[1][j], dp[1][j-1] + A[1][j]);		
				}
			}
			dp[1][N-1] = Math.max(dp[0][N-1] + A[1][N-1], dp[1][N-2] + A[1][N-1]);	
			
			System.out.println(dp[1][N-1]);
		}
	}
}