process.stdin.resume();
process.stdin.setEncoding('utf8');

var g_input = '';
process.stdin.on('data', function(chunk) {
    g_input += chunk;
});

process.stdin.on('end', function() {
    Main(g_input.split(/\r?\n/));
});

function Main(input) {

    var nh = input[0].split(' ');
    var n = parseInt(nh[0], 10);
    var h = parseInt(nh[1], 10);
    var a = new Array(n);
    var b = new Array(n);
    for (var i = 0; i < n; i++) {
        var ab = input[i + 1].split(' ');
        a[i] = parseInt(ab[0], 10);
        b[i] = parseInt(ab[1], 10);
    }

    var maxa = Math.max.apply(null, a);

    var throwDamage = 0;
    var throwNum = 0;
    for (var i = 0; i < n; i++) {
        if (b[i] > maxa) {
            throwDamage += b[i];
            throwNum++;
        }
    }

    var ans = Math.ceil((h - throwDamage) / maxa) + throwNum;
    console.log(ans);

    return 0;
}
