fn main() { let mut nm = String::new(); std::io::stdin().read_line(&mut nm).ok(); let nm: Vec = nm.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nm[0]; let m = nm[1]; let mut pairs = (0..m).map(|_| { let mut temp = String::new(); std::io::stdin().read_line(&mut temp).ok(); let temp: Vec = temp.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); (temp[0]-1, temp[1]-1) }) .collect::>(); pairs.sort_by_key(|&(_, y)| y); let mut cur = -1; let mut result = 0usize; for &(l, r) in pairs.iter() { if cur >= l { continue; } result += 1; cur = r; } println!("{}", n-result); }