#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
struct Max
{
int& operator*() { return cur; }
void operator++(){ cur = mx = max(mx,mxe = max(0,mxe+cur)); }
private:
int cur, mx = 0, mxe = 0;
};
int main()
{
size_t n;
cin >> n;
cout << *copy_n(istream_iterator<int>(cin),n,Max{});
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE1heAp7CiAgICBpbnQmIG9wZXJhdG9yKigpIHsgcmV0dXJuIGN1cjsgfQogICAgdm9pZCBvcGVyYXRvcisrKCl7IGN1ciA9IG14ID0gbWF4KG14LG14ZSA9IG1heCgwLG14ZStjdXIpKTsgfQpwcml2YXRlOgogICAgaW50IGN1ciwgbXggPSAwLCBteGUgPSAwOwp9OwoKaW50IG1haW4oKQp7CiAgICBzaXplX3QgbjsKICAgIGNpbiA+PiBuOwogICAgY291dCA8PCAqY29weV9uKGlzdHJlYW1faXRlcmF0b3I8aW50PihjaW4pLG4sTWF4e30pOwoKfQo=