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 prev = 0; let mut k = 0; for (grace, cnt) in grace_map { let period = grace as usize - prev; k = k.max((cnt + period - 1) / period); prev = grace as usize; } println!("{k}"); }