fn main() { let (n, x) = { let mut line = String::new(); std::io::stdin().read_line(&mut line).unwrap(); let mut iter = line.split_whitespace(); ( iter.next().unwrap().parse::().unwrap(), iter.next().unwrap().parse::().unwrap(), ) }; let ab: Vec<_> = (0..n) .map(|_| { let mut line = String::new(); std::io::stdin().read_line(&mut line).unwrap(); let mut iter = line.split_whitespace(); ( iter.next().unwrap().parse::().unwrap() - 1, iter.next().unwrap().parse::().unwrap(), ) }) .collect(); let mut ll = vec![0; x]; for i in 0..x { ll[i] = ab .iter() .map(|&(a, b)| b.saturating_sub(i.abs_diff(a))) .max() .unwrap(); } print!("{}", ll[0]); for &l in ll[1..].iter() { print!(" {}", l); } println!(); }