fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut p = String::new(); std::io::stdin().read_line(&mut p).ok(); let mut p: Vec = p.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut result = 0usize; let mut summary = p.iter().sum::(); while p.len() > 0 && *p.last().unwrap() == p.len() { if summary > 2*p.len() { result = summary - 2*p.len(); } summary -= p.len(); p.pop(); } let n = p.len(); if n > 0 { let idx = (0..n).filter(|&i| p[i] == n).nth(0).unwrap() + 1; if summary > 2*idx { result = result.max(summary - 2*idx); } } println!("{}", result); }