// yukicoder My Practice
// author: Leonardone @ NEETSDKASU
use std::io;
fn get_line() -> String {
let mut input = String::new();
io::stdin().read_line(&mut input).ok().expect("");
return String::from(input.trim());
}
fn get_words() -> Vec<String> {
get_line()
.split_whitespace()
.map(String::from)
.collect()
}
fn get_integers() -> Vec<i32> {
get_line()
.split_whitespace()
.map(|x| String::from(x).parse::<i32>().unwrap())
.collect()
}
fn main() {
let _ = get_line();
let nums = get_integers();
let (ans, _) = nums
.iter()
.fold((0,0), |(ans, mx), &x|
if x > mx { (ans, x) }
else { if ans < x { (x, mx) } else { (ans, mx) } }
);
println!("{}", ans);
}
Ly8geXVraWNvZGVyIE15IFByYWN0aWNlCi8vIGF1dGhvcjogTGVvbmFyZG9uZSBAIE5FRVRTREtBU1UKdXNlIHN0ZDo6aW87CgpmbiBnZXRfbGluZSgpIC0+IFN0cmluZyB7CglsZXQgbXV0IGlucHV0ID0gU3RyaW5nOjpuZXcoKTsKCWlvOjpzdGRpbigpLnJlYWRfbGluZSgmbXV0IGlucHV0KS5vaygpLmV4cGVjdCgiIik7CglyZXR1cm4gU3RyaW5nOjpmcm9tKGlucHV0LnRyaW0oKSk7Cn0KCmZuIGdldF93b3JkcygpIC0+IFZlYzxTdHJpbmc+IHsKCWdldF9saW5lKCkKCQkuc3BsaXRfd2hpdGVzcGFjZSgpCgkJLm1hcChTdHJpbmc6OmZyb20pCgkJLmNvbGxlY3QoKQp9CgpmbiBnZXRfaW50ZWdlcnMoKSAtPiBWZWM8aTMyPiB7CglnZXRfbGluZSgpCgkJLnNwbGl0X3doaXRlc3BhY2UoKQoJCS5tYXAofHh8IFN0cmluZzo6ZnJvbSh4KS5wYXJzZTo6PGkzMj4oKS51bndyYXAoKSkKCQkuY29sbGVjdCgpCn0KCmZuIG1haW4oKSB7CgkKCWxldCBfID0gZ2V0X2xpbmUoKTsKCWxldCBudW1zID0gZ2V0X2ludGVnZXJzKCk7CgkKCWxldCAoYW5zLCBfKSAgPSBudW1zCgkJLml0ZXIoKQoJCS5mb2xkKCgwLDApLCB8KGFucywgbXgpLCAmeHwgCgkJCWlmIHggPiBteCB7IChhbnMsIHgpIH0KCQkJZWxzZSB7IGlmIGFucyA8IHggIHsgKHgsIG14KSB9IGVsc2UgeyAoYW5zLCBteCkgfSB9CgkJCSk7CgkKCXByaW50bG4hKCJ7fSIsIGFucyk7Cn0=