// inputに入力データ全体が入る
function Main(input) {
	input = input.split('\n');
	var first = input[0].split(" ");
	var N = parseInt(first[0]),
		H = parseInt(first[1]);

	var katanas = [],
		maxAtk = 0;
	for(var i = 1; i < N + 1; i++) {
		var k = arrayParseInt(input[i].split(" "));
		if(k[0] > maxAtk) maxAtk = k[0];
		katanas.push(k);
	}

	var throwSum = 0,
		throwKatanas = 0
	for(var i = 0; i < katanas.length; i++) {
		var k = katanas[i]
		//投げるより他の強いやつ振ったほうがいいときもある
		if(k[1] > maxAtk) {
			throwSum += k[1]
			throwKatanas++;
		}
	}


	var c = 0
	while(H > throwSum) {
		H -= maxAtk;
		c++;
	}

	console.log(c + throwKatanas)
}

function arrayParseInt(array) {
	return array.map(function (x) {
	    return parseInt(x, 10); 
	});
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));