#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define p_q priority_queue
#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
#define str string
#define s_vec(data,name,vertical,horizontal) vector<vector<(data)>> (name)((vertical),vector<(data)>((horizontal)));


int main() {

    ll n,h;
    cin>>n>>h;

    set<ll> a;
    vector<ll> b(n);


    ll am;
    rep(i,n){
        cin>>am>>b.at(i);
        a.insert(am);
    }

    am = *rbegin(a);
    sort(b.begin(),b.end(),greater<ll>());

    ll cob=0;
    ll co=0;
    while(h>=0){
        if(am<=b.at(cob)){
            h -= b.at(cob);
            co++;
            if(cob!=n-1){
                cob++;
            }else{
                b.at(cob) = 0;
            }
        }else{
                if (h % am == 0) {
                    h = h / am;
                    co += h;
                    break;
                } else {
                    h = (h / am) + 1;
                    co += h;
                    break;
                }
        }
    }

    cout<<co<<endl;


}