/*
queue 구현부분
#include <stdio.h>
#define SIZE 50
int queue[SIZE];
int front=-1,rear=-1;
void enqueue(int data)
{
//rear
rear++;
queue[rear]=data;
}
int dequeue()
{
//front : 데이터가 마지막으로 나간 위치
front++;
return queue[front];
}
int main()
{
}
*/
/*
바이러스 dfs풀이
#include<stdio.h>
int arr[101][101]={},a[101]={},n;
void dfs(int node)
{
for(int i=1;i<=n;i++)
{
if(arr[node][i]==1 && a[i]==0)
{
a[i]=1;
dfs(i);
}
}
}
int main()
{
int b,c=0,x,y;
scanf("%d %d",&n,&b);
for(i=1;i<=b;i++)
{
scanf("%d %d",&x,&y);
arr[x][y]=arr[y][x]=1;
}
dfs(1);
for(i=2;i<=n;i++)
{
c+=a[i];
}
printf("%d",c);
}
*/
/*bfs로 바이러스 풀이*/
/*
#include<stdio.h>
int n,i;
int queue[10001];
int front=-1,rear=-1;
int arr[101][101]= {};
int a[101]= {};
void enqueue(int data)
{
rear++;
queue[rear]=data;
a[data]=1;
}
int dequeue()
{
front++;
return queue[front];
}
void bfs(int node)
{
for(i=1; i<=n; i++)
{
if(arr[node][i]==1 && a[i]==0)
{
enqueue(i);
}
}
}
int main()
{
int b,c=0,i,j,x,y;
scanf("%d %d",&n,&b);
for(i=1; i<=b; i++)
{
scanf("%d %d",&x,&y);
arr[x][y]=arr[y][x]=1;
}
bfs(1);
while(front!=rear)
{
bfs(dequeue());
}
for(i=2; i<=n; i++)
{
c+=a[i];
}
printf("%d",c);
}
*/
/*
//동적계획법 : 계산한 결과를 다시 계산하지 않도록 하는 방법
//재귀 메모이제이션
*/
/*
#include<stdio.h>
int main()
{
int arr[100001],k,i,j,n,a,max,sum=0;
scanf("%d %d",&n,&k);
for(i=1; i<=n; i++)
{
scanf("%d",&arr[i]);
}
for(j=1; j<=k; j++)
{
sum+=arr[j];
}
max=sum;
for(i=1; i<n-k+1; i++)
{
sum=sum-arr[i]+arr[i+k];
if(sum>max)
{
max=sum;
}
}
printf("%d",max);
}
*/
#include<stdio.h>
int main()
{
int arr[100001],n,i,sum=0,max=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
}
if(sum>max)
{
sum=max;
}
}