/*#include<stdio.h>
#include<string.h>
int stack[31];
int top=-1;
void push(int d)
{
top++;
stack[top]=d;
}
int pop()
{
return stack[top--];
}
int peek()
{
return stack[top];
}
int main()
{
int i,c=0,c1=0,j,sum=0,sum1=0;
char s[31];
scanf("%s",s);
for(i=0;i<strlen(s);i++)
{
if(s[i]=='(')
{
push(-1);
}
else if(s[i]=='[')
{
push(-2);
}
else if(s[i]==')')
{
while(peek()!=-1)
{
sum+=pop();
}
pop();
if(top<-1){
printf("0");
return 0;
}
if(sum==0) push(2);
else push(sum*2);
sum=0;
}
else if(s[i]==']')
{
while(peek()!=-2)
{
sum1+=pop();
}
pop();
if(top<-1){
printf("0");
return 0;
}
if(sum1==0) push(3);
else push(sum1*3);
sum1=0;
}
}
int r=0;
while(top!=-1)
{
sum=pop();
if(sum==-1||sum==-2)
{
printf("0");
return 0;
}
r+=sum;
}
printf("%d",r);
return 0;
}*/
//Queue
/*
#include <stdio.h>
#define SIZE 50
int queue[SIZE];
int front=-1,rear=-1;
//front 마지막으로 데이터가 나간 위치
//rear 마지막으로 데이터가 들어온 위치 == top
void enqueue(int data)
{
if(rear==SIZE-1) return ; //full check
rear++;
queue[rear]=data;
}
int dequeue()
{
if(front==rear) return -1;//empty check
return queue[front--];
}
int main()
{
}
*/
#include<stdio.h>
int main()
{
int n,i,a[100000]={},max=0,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]+a[i+1]>max)
{
max=a[i]+a[i+1];
}
}
return 0;
}