use proconio::input;
use std::collections::BTreeMap;
use std::cmp::Reverse;

fn main() {
    input! {
        n: usize,
        mut h: usize,
        ab: [(usize, usize); n],
    }

    let mut map = BTreeMap::new();

    for (a, b) in ab {
        map.entry(Reverse(a)).or_insert(h);
        *map.entry(Reverse(b)).or_insert(0) += 1;
    }

    let mut count = 0;

    for (Reverse(key), val) in map.into_iter() {
        if h == 0 {
            break;
        }
        for _ in 0..val {
            if h <= key {
                count += 1;
                break;
            } else {
                count += 1;
                h -= key;
            }
        }
    }

    println!("{}", count);
}
