use itertools::Itertools; use proconio::input; fn main() { input! { _n: usize, m: usize, a: [usize; m], } let mut ans = vec![]; let mut start_num = a[0]; let mut cnt = 1; for &a_i in a.iter().skip(1) { if a_i != start_num + cnt { ans.push((start_num, cnt)); start_num = a_i; cnt = 1; continue; } cnt += 1; } ans.push((start_num, cnt)); println!("{}", ans.len()); println!( "{}", ans.iter() .map(|&(num, cnt)| format!("{} {}", num, cnt)) .join("\n") ); }