use std::collections::BTreeMap; fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let a = (0..n).map(|_| { let mut temp = String::new(); std::io::stdin().read_line(&mut temp).ok(); let temp: usize = temp.trim().parse().unwrap(); temp }) .collect::>(); let mut mapping = BTreeMap::new(); for &v in a.iter() { *mapping.entry(v).or_insert(0usize) += 1; } let mut prev = 0usize; let mut prev_cnt = 0usize; let mut result = 0usize; for (&val, &cnt) in mapping.iter() { if prev + 1 == val { result = result.max(prev_cnt + cnt); } else { result = result.max(cnt); } prev = val; prev_cnt = cnt; } println!("{}", result); }