#include<bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (int)(n); i++)
using ll = long long;
using namespace std;

int main(){
	ll N, H, a, b;
	pair<ll, ll> maxp;
	
	cin >> N >> H;
	vector<pair<ll, ll>> vp(N);
	rep(i, N){
		cin >> a >> b;
		vp.at(i) = make_pair(a, b);
	}
	sort(vp.begin(), vp.end(), [](auto l, auto r)->bool{
		return l.first > r.first;
	});
	
	maxp.first = vp.at(0).first;
	maxp.second = vp.at(0).second;
	vp.erase(vp.begin());
	
	sort(vp.begin(), vp.end(), [](auto l, auto r)->bool{
		return l.second > r.second;
	});
	set<ll> s;
	for(auto itr = vp.begin(); itr != vp.end(); itr++){
		if(itr->second >= maxp.first) s.insert(itr->second);
		else break;
	}
	
	s.insert(maxp.second);
	ll ans = 0;
	for(auto ritr = s.rbegin(); ritr != s.rend(); ritr++){
		H -= *ritr;
		ans++;
		if(H <= 0) break;
	}
	if(H > 0) ans += (H + maxp.first - 1)/(maxp.first);
	cout << ans << endl;
	
	return 0;
}