fn read() -> (isize, isize) { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let mut nm: Vec = s.trim().split_whitespace() .map(|x| x.parse().unwrap()).collect(); (nm[0], nm[1]) } fn main() { let (n, m) = read(); let mut q: Vec<(isize, isize)> = Vec::new(); for _ in 0..m { let (l, r) = read(); q.push((n - l, n - r)); } let mut mp = vec![0isize; n as usize + 1]; for &(l, r) in q.iter() { mp[l as usize] += 1; mp[r as usize + 1] -= 1; } for i in 0..n as usize { mp[i + 1] += mp[i]; } for i in 0..n as usize { println!("{}", mp[i]); } }