#include <iostream>
#include<sstream>
#include<string>
#include<vector>
#include <cmath>
#include <limits>
#include <queue>
#include<algorithm>
#include<cstring>
#include <cstdlib>
#include <cstdio>
#include <set>
#include <iomanip>
#include <map>
#include <stack>
#include <memory>
#include <numeric>
#include <type_traits>
 
using namespace std;
 
#define rep(i,n) for (int (i)=0;(i)<(n);i++)
typedef long long ll;

 
int main() {
    int n; ll h;
    cin >> n >> h;
    vector<ll> a(n), b(n);
    rep(i,n){
        cin >> a[i] >> b[i];
    }
    sort(a.begin(), a.end(), greater<ll>()); sort(b.begin(), b.end(), greater<ll>() );
    
    ll bmax = 1e9;
    ll count = 0;
    int j = 0;
    while(a[0] <= bmax || h <= 0){
        bmax = b[j];
        if (a[0] <= bmax){
            h -= bmax; ++count;
        }
        ++j;
    }
    if (h <= 0) continue;
    else if (h%a[0] == 0) {
        count += h/a[0];
    }
    else{
        count += h/a[0]+1;
    }

    cout << count << endl;

    return 0;
}