#include <bits/stdc++.h>
using namespace std;
int n,h,t;
struct Weapon{
	int a,b;
}w[100001];
bool Cmpare(Weapon a,Weapon b){
	return a.b<b.b;
}
int main() {
	scanf("%d%d",&n,&h);
	int am=0,bm=0;
	for (int i=1;i<=n;i++){
	scanf("%d%d",&w[i].a,&w[i].b);
	am=max(am,w[i].a);
	bm=max(bm,w[i].b);}
	sort(w+1,w+1+n,Cmpare);
	for (int i=n;i>=1;i--){
	if (h<=0) break;
	if (w[i].b>=am) h-=w[i].b,t++;}
	if (h>0) while (h>0) {h-=am;t++;}
	cout<<t;
	return 0;
}