#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
#define rep(i,n) for(int i = 0; i < ((int)(n)); i++)   // 0-indexed昇順

int main() {
    int N, H; cin >> N >> H;
    vector A(N,0), B(N,0);
    int am = 0, bm = 0;
    rep(i,N) {
        int a, b; cin >> a >> b;
        A.at(i) = a;
        B.at(i) = b;
        am = max(am, a);
        bm = max(bm, b);
    }
    if (am >= H || bm >= H) {
        cout << 1 << endl;
        return 0;
    }

    //sort(A.begin(), A.end(), greater<int>());
    sort(B.begin(), B.end());
    auto pb = upper_bound(B.begin(), B.end(), am);
    if (pb == B.end()) {
        cout << ceil(H/am) << endl;
        return 0;
    }
    int bi = distance(B.begin(), pb);
    ll bsum = 0;
    for (int i = bi; i < N; i++) bsum += B[i];
    ll res = ((ll)H - bsum + am - 1) / am;
    cout << res + (N - bi) << endl;
}
