use std::io::*; fn main() { let mut s: String = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let mut itr = s.trim().split_whitespace(); let n: usize = itr.next().unwrap().parse().unwrap(); let a: Vec = (0..n) .map(|_| itr.next().unwrap().parse::().unwrap() - 1) .collect(); let mut used = vec![false; n + 1]; let mut ans = 0; for i in (0..n).rev() { let mut j = a[i] + 1; while j < n && used[j] { j += 1; } if j != n { used[j] = true; ans += i + 1; } else if !used[a[i]] { used[a[i]] = true; } else { for k in 0..n { if !used[k] { used[k] = true; break; } } ans -= i + 1; } } println!("{}", ans); }