#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <math.h>
#include <cmath>
#include <limits.h>
#include <map>
#include <set>
#include <queue>
#include <algorithm>
#include <functional>
#include <stdio.h>
using namespace std;

long long MOD = 1000000007;

int main() {
    
    int N;
    long long H;
    cin >> N >> H;
    
    vector< pair< long long , long long> > A;
    long long a_m = 0;
    for ( int i = 0; i < N; i++ ) {
        long long a,b;
        cin >> a >> b;
        a_m = max( a_m, a );
        A.push_back(make_pair(b,a));
    }
    sort( A.begin(), A.end(), greater< pair<long long,long long> >() );
    
    long long ans = 0;
    for ( int i = 0; i < N; i++ ) {
        H -= A[i].first;
        ans++;
        if ( H <= 0 ) { break; }
        if ( a_m == A[i] ) {
            ans += (H/A[i].second) + ( (H%A[i].second) ? 1 : 0 );
            break;
        }
    }
    
    cout << ans << endl;
    
    return 0;
}