#include<iostream>
#include <algorithm>
using namespace std;

int n, h;
#define maxn 100000
class sword {
public:
	int a;
	int b;
	bool operator<(sword& as) {
		return b < as.b;
	}

}s[maxn+5];

int maxa;
int main() {
	maxa = 0;
	int dmg=0;
	int att=0;
	cin>>n>>h;
	for (int i = 0; i < n; ++i) {
		cin>>s[i].a>>s[i].b;
		
	}
	sort(s, s + n);
	for (int i = 0; i < n; ++i) {
		maxa = s[maxa].a < s[i].a ? i : maxa;
	}
	//大于maxa.a的全扔出去
	for (int snum = n - 1; dmg < h&&snum > maxa;++att) {
		 dmg += s[snum--].b; 
	}

	if (s[maxa].a > s[maxa].b) {
		att =att+ (h - dmg) / s[maxa].a;
		if ((h - dmg) % s[maxa].a != 0) {
			++att;
		}
	}
	else {
		att += 1; dmg += s[maxa].b;//最后一下是扔出去的
		if (dmg < h) { 
			att += (h - dmg) / s[maxa].a;
			if ((h - dmg) % s[maxa].a != 0) {
				++att;
		}
		}
	}
	cout << att;
}

