use std::io;
fn main() {
  let mut input_line = String::new();
  io::stdin().read_line(&mut input_line).unwrap();
  let input = input_line.trim().split(" ").collect::<Vec<&str>>();
  let n = input[0].trim().parse::<usize>().unwrap();
  let m = input[1].trim().parse::<usize>().unwrap();
  
  let mut data: Vec<Vec<usize>> = Vec::with_capacity(n);
  for _ in 0..n {
    let mut input_line = String::new();
    io::stdin().read_line(&mut input_line).unwrap();
    data.push(input_line.trim().split(" ").map(|z| z.trim().parse::<usize>().unwrap()).collect());
  }
  
  for i in 1..m+1 {
    let mut sum = 0;
    for ref x in data.iter() {
      let l = (x[0]-1) / i + 1;
      let r = x[1] / i;
      if l <= r { sum += 1; }
    }
    println!("{}", sum);
  }
}
