#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <algorithm>

#define SUBMIT 1

int tempo_massimo(int N, int A[], int B[]) {
    int takeState = 0;
    int waitState = 0;

    for (int i = 0; i < N; i++) {
        int newTake = std::max(waitState + B[i], std::max(waitState + A[i], takeState + A[i]));
        int newWait = std::max(takeState, waitState);

        takeState = newTake;
        waitState = newWait;
    }

    return std::max(takeState, waitState);
}

#ifndef SUBMIT
int main()
{
    freopen("input.txt", "r", stdin);

    int n;
    FILE *in = stdin, *out = stdout;
    assert(fscanf(in, "%d", &n) == 1);

    int *a = (int*)calloc(n, sizeof(int));
    int *b = (int*)calloc(n, sizeof(int));

    for(int i=0; i<n; i++){
      assert(fscanf(in, "%d", a + i) == 1);
      assert(fscanf(in, "%d", b + i) == 1);
    }

    int answ = tempo_massimo(n, a, b);
    fprintf(out, "%d\n", answ);

    free(a);
    free(b);

    fclose(in);
    fclose(out);

    return EXIT_SUCCESS;
}
#endif