#include <bits/stdc++.h>
using namespace std;
struct num {
  unsigned long long a;
  bool b;
};
num nu[100005] = {0};
unsigned long long qkpow(unsigned long long x, unsigned long long n) {
  unsigned long long res = 1;
  while (n > 0) {
    if (n & 1) res = res * x;
    x = x * x;
    n >>= 1;
  }
  return res;
}
int main(void) {
  int n, h;
  cin >> n >> h;
  unsigned long long sum = 0;
  int i, j;
  unsigned long long maxn = -1;
  for (i = 0; i < 2 * n; i += 2) {
    cin >> nu[i].a >> nu[i + 1].a;
    nu[i].b = 0;
    nu[i + 1].b = 1;
  }
  sort(nu, nu + 2 * n, [](num x, num y) {
    if (x.a > y.a) return true;
    return false;
  });
  for (i = 0; i < n; i++) {
    sum += nu[i].a;
    if (sum >= h) {
      cout << i + 1 << endl;
      return 0;
    }
    if (nu[i].b == 0) {
      unsigned long long temp = (h - sum) / nu[i].a;
      if ((h - sum) % nu[i].a) temp++;
      cout << i + 1 + temp << endl;
      return 0;
    }
  }
  return 0;
}
