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

        }
        System.out.println(dp[1][N-1]);
    }


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

        }
        System.out.println(dp[1][N-1]);
    }


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

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

        }
        System.out.println(dp[1][N-1]);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc 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] = sc.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] = sc.nextInt();
            }
        } {
            for(int j=0;j<N;j++){
                A[i][j] = sc.nextInt();
            }
        } for(int j=0;j<N;j++){
                A[i][j] = sc.nextInt();
            } int j=0; int j=0; j 0 j<N j N j++ j++ j {
                A[i][j] = sc.nextInt();
            } {
                A[i][j] = sc.nextInt();
            } A[i][j] = sc.nextInt() A[i][j] A[i] A i j sc.nextInt() sc.nextInt sc int[][] dp = new int[2][N]; dp new int[2][N] 2 N for(int i=0;i<2;i++){
            for(int j=0;j<N;j++){
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            }

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

        } {
            for(int j=0;j<N;j++){
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            }

        } for(int j=0;j<N;j++){
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            } int j=0; int j=0; j 0 j<N j N j++ j++ j {
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            } {
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            } if(i==0 && j==0) dp[0][0] = A[0][0]; i==0 && j==0 i==0 i 0 j==0 j 0 dp[0][0] = A[0][0] dp[0][0] dp[0] dp 0 0 A[0][0] A[0] A 0 0 if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                } i==1 && j>0 i==1 i 1 j>0 j 0 {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j] dp[i][j] dp[i] dp i j Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j] Math.max(dp[i - 1][j], dp[i][j - 1]) Math.max Math dp[i - 1][j] dp[i - 1] dp i - 1 i 1 j dp[i][j - 1] dp[i] dp i j - 1 j 1 A[i][j] A[i] A i j if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                } j>0 && i==0 j>0 j 0 i==0 i 0 {
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } dp[i][j] = dp[i][j-1] + A[i][j] dp[i][j] dp[i] dp i j dp[i][j-1] + A[i][j] dp[i][j-1] dp[i] dp i j-1 j 1 A[i][j] A[i] A i j if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                } j==0 && i==1 j==0 j 0 i==1 i 1 {
                    dp[i][j] = dp[i-1][j] + A[i][j];
                } dp[i][j] = dp[i-1][j] + A[i][j] dp[i][j] dp[i] dp i j dp[i-1][j] + A[i][j] dp[i-1][j] dp[i-1] dp i-1 i 1 j A[i][j] A[i] A i j 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 sc = new Scanner(System.in);
        int N = sc.nextInt();
        int A[][] = new int[2][N];
        for(int i=0;i<2;i++){
            for(int j=0;j<N;j++){
                A[i][j] = sc.nextInt();
            }
        }
        int[][] dp = new int[2][N];
        for(int i=0;i<2;i++){
            for(int j=0;j<N;j++){
                if(i==0 && j==0) dp[0][0] = A[0][0];
                if(i==1 && j>0) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + A[i][j];
                } else if(j>0 && i==0){
                    dp[i][j] = dp[i][j-1] + A[i][j];
                } else if(j==0 && i==1){
                    dp[i][j] = dp[i-1][j] + A[i][j];
                }
            }

        }
        System.out.println(dp[1][N-1]);
    }


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

        }
        System.out.println(dp[1][N-1]);
    }


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

        }
        System.out.println(dp[1][N-1]);
    }


}
