#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
struct node {
	ll a,b;
	bool operator<(const node&qq) {
		if(qq.b==this->b)
			return qq.a<this->a;
		else return qq.b>this->b;
	}
} p[100010];
int main() {
	ios::sync_with_stdio(false);
	int n;
	ll h;
	cin>>n>>h;
	for(int j=1; j<=n; j++) cin>>p[j].a>>p[j].b;
	if(n!=1) {
		sort(p+1,p+1+n);
		ll sum=0,maxa=0;
		ll ans=0;
		for(int j=1;j<=n;j++)
			maxa=max(p[j].a,maxa);
		for(int j=1;j<=n;j++){
			if(p[j].b>=maxa){
				sum+=p[j].b;
				ans++;
			}
		}
		if((h-sum)%maxa==0)   ans+=(h-sum)/maxa;
		else ans+=((h-sum)/maxa)+1;
		cout<<ans;
	}
	else {
		if((h-p[1].b)%p[1].a==0) cout<<(h-p[1].b)/p[1].a+1;
		else cout<<(h-p[1].b)/p[1].a+2;
	}
	return 0;
}
