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

long long Y[100005];
long long a, h;

long long getCount(long long sm)
{
    return max(0LL, ceil((0LL + h - sm) / (double)a));
}

int main()
{
    int n;
    long long x;
    long long bsum = 0, ans;
    cin>>n>>h;
    for(int i = 0; i < n; i++)
    {
        scanf("%lld %lld", &x , &Y[i]);
        a = max(a, x);
    }
    sort(Y, Y + n);
    bsum = 0;
    ans = getCount(bsum);
    for(int i = n - 1; i >= 0; i--)
    {
        bsum += Y[i];
        ans = min(ans, getCount(bsum) + (n - i));
    }
    cout<<ans;
    return 0;
}
