#include <iostream>
#include <vector>
#include<algorithm>

int main() {
	std::vector<std::pair<int, int>> katana;
	int N, HP;
	std::cin >> N >> HP;
	katana.resize(N);
	auto tmp = std::make_pair(0, 0);
	for (int i = 0; i < N; ++i) {
		std::cin >> tmp.first >> tmp.second;
		katana[i] = tmp;
	}
	
	int saikyou = std::max_element(katana.begin(), katana.end(), [](const auto& lhs, const auto& rhs) {return lhs.first < rhs.first; })->first;
	long long int count = 0;
	for (int i = 0; i < N; ++i) {
		if (katana[i].second >= saikyou) {
			HP -= katana[i].second;
			++count;
		}
		if (HP <= 0) break;
	}


	if (HP > saikyou) {
		count += HP / saikyou;
		int nokori = HP%saikyou;
		if(nokori!=0)
			++count;
	}
	else if (HP > 0) {
		++count;
	}

	std::cout << count << "\n";

}