#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vin = vector<int>;
using vll = vector<ll>;
using P = pair<int, int>;
const int inf = 1e9 + 7;
const ll INF = 1e18;
template <typename T>
void chmin(T &a, T b) {
  a = min(a, b);
}
template <typename T>
void chmax(T &a, T b) {
  a = max(a, b);
}
int main() {
  int cnt = 0;
  int n, h;
  cin >> n >> h;
  vector<P> ab(n);
  for (int i = 0; i < (n); ++i) {
    int a, b;
    cin >> a >> b;
    ab[i] = make_pair(a, b);
  }
  sort((ab).begin(), (ab).end());
  reverse((ab).begin(), (ab).end());
  ll amax = ab[0].first;
  for (int i = 0; i < (n); ++i) {
    swap(ab[i].first, ab[i].second);
  }
  P mx;
  mx = ab[0];
  sort((ab).begin(), (ab).end());
  reverse((ab).begin(), (ab).end());
  int v = 0;
  for (int i = 0; i < (n); ++i) {
    if (ab[i] == mx && v == 0) {
      v++;
      continue;
    }
    if (ab[i].first < amax) break;
    cnt++;
    h -= ab[i].first;
    if (h - mx.first <= 0) break;
  }
  int a = mx.second, b = mx.first;
  while (h > b) {
    cnt++;
    h -= a;
  }
  if (h > 0) cnt++;
  cout << cnt << endl;
}
