#include <bits/stdc++.h>
static const int INF = 0x3f3f3f3f;
static const long long INFL = 0x3f3f3f3f3f3f3f3fLL;
template <typename T, typename U>
static void amin(T &x, U y) {
  if (y < x) x = y;
}
template <typename T, typename U>
static void amax(T &x, U y) {
  if (x < y) x = y;
}
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long n, h;
  cin >> n >> h;
  long long a[188888];
  long long b[188888];
  long long a_max = 0;
  long long b_max = 0;
  long long a_max_number, b_max_number;
  for (int(i) = 0; (i) < (int)(n); ++(i)) {
    cin >> a[i] >> b[i];
    if (a_max < a[i]) {
      a_max = a[i];
      a_max_number = i;
    }
    if (b_max < b[i]) {
      b_max = b[i];
      b_max_number = i;
    }
  }
  long long number = 0;
  sort(b, b + n);
  for (int(i) = 0; (i) < (int)(n); ++(i)) {
    if (b[i] > a[a_max_number] && h > 0) {
      h -= b[i];
      number++;
    }
  }
  if (h > 0) {
    long long t = (h + long long(a[a_max_number] - 1)) / a[a_max_number];
    number += t;
  }
  cout << number << endl;
  return 0;
}
