use std::collections::BTreeMap; use proconio::input; fn main() { input! { (n, m): (usize, u64), ab: [(u64, u64); n], } let graces = ab.iter().map(|&(a, b)| (m - a) / b + 1); let mut grace_map = BTreeMap::::new(); for grace in graces { *grace_map.entry(grace).or_default() += 1; } let mut k = 0; let mut acc = 0; for (grace, cnt) in grace_map { acc += cnt; k = k.max((acc + grace as usize - 1) / grace as usize); } println!("{k}"); }