#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const long long linf = (long long)1e18;
const int mod = (int)(1e9 + 7);
const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};
const int ddx[] = {0, 1, 1, 1, 0, -1, -1, -1};
const int ddy[] = {1, 1, 0, -1, -1, -1, 0, 1};
const double eps = 1e-10;
struct oreno_initializer {
  oreno_initializer() {
    cin.tie(0);
    ios::sync_with_stdio(0);
  }
} oreno_initializer;
long long n, h, a[100000], b[100000], bs, bt, am, r;
signed main() {
  cin >> n >> h;
  for (int(i) = 0; (i) < (int)(n); (i)++) cin >> a[i] >> b[i];
  am = *max_element(a, a + n);
  for (int(i) = 0; (i) < (int)(n); (i)++)
    if (am <= b[i]) bs += b[i], bt++;
  r = ceil(1. * (h - bs) / am);
  r += bt;
  cout << r << '\n';
}
