"use strict";
const main = arg => {
  let NumAmount = arg.split("\n")[0]*1;
  let row1 = arg.split("\n")[1].split(" ").map(n => n*1);
  let row2 = arg.split("\n")[2].split(" ").map(n => n*1);
  let ansArr = [];
  let a_sum = 0;
  let b_sum = 0;
  // 全部網羅して最大値をとればいい
  // aのそれぞれのところまでの足し合わせ
  for(let a_i = 0; a_i < NumAmount; a_i++){
  	a_sum += row1[a_i];
    ansArr[a_i] = a_sum;
  }
  // bをお尻の方からそれぞれのところまでの足し合わせ
  for(let b_i = NumAmount - 1; b_i >= 0; b_i--){
  	b_sum += row2[b_i];
    ansArr[b_i] += b_sum;
  }
  // 最大値を表示
  console.log(Math.max(...ansArr));
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));
