#include <iostream>
#include<cstdlib>
#include<queue>
#include<set>
#include<vector>
#include<string>
#include<algorithm>
#include<stack>
#include<map>
#include<cstdio>
#include <math.h>
using namespace std;
#define rep(i,a) for(int i=0;i<a;i++)
#define mp make_pair
#define pb push_back
//#define __int64 long long 
#define P pair<__int64,__int64>
__int64  n,h;
__int64 a[110000],b[110000];
P t[110000];

int main(){
	cin>>n>>h;
	rep(i,n){
		cin>>a[i]>>b[i];
		t[i]=mp(a[i],b[i]);
	}
	sort(t,t+n,greater<P>());

	
	__int64 ans=0;
	__int64 huri=t[0].first;

	for(int i=0;i<n;i++){
		if(huri<=t[i].second){
				ans++;
				h-=t[i].second;
		}
		if(h<=0)break;
	}

	if(h>0)ans+=ceil((double)h/(double)huri);
	//if(h>0&&h%huri!=0)ans++;
	cout<<ans<<endl;
	return 0;
}
