"use strict";
    
const main = arg => {
    arg = arg.trim().split("\n");
    const N  = parseInt(arg[0].split(" ")[0]);
    let H  = parseInt(arg[0].split(" ")[1]);
    const ab = arg.slice(1, N + 1).map(n=>n.split(" ").map(l=>parseInt(l)));
    
    ab.sort((a,b)=>b[0] - a[0]);
    
    const aMax = ab[0][0];
    
    ab.sort((a,b)=>b[1] - a[1]).filter(n=>n[1] > aMax);
    
    let damage = 0;
    let answer = 0;
    
    for(let i in ab) {
        damage += ab[i][1];
        answer++;
        
        if(damage > H) {
            console.log(answer);
            return;
        }
    }
    
    const directAttack = Math.ceil((H - damage) / aMax);
    
    console.log(answer + directAttack);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));