#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
using ll = long long;
unsigned gcd(unsigned a, unsigned b) {
  if (a < b) return gcd(b, a);
  unsigned r;
  while ((r = a % b)) {
    a = b;
    b = r;
  }
  return b;
}
unsigned lcm(unsigned a, unsigned b) { return a / gcd(a, b) * b; }
int main() {
  int N, H;
  cin >> N >> H;
  vector<int> a(N);
  vector<int> b(N);
  sort((b).begin(), (b).end());
  reverse((b).begin(), (b).end());
  int furi = -1;
  for (int i = 0, i_len = (N); i < i_len; ++i) {
    cin >> a.at(i);
    furi = max(furi, a.at(i));
    cin >> b.at(i);
  }
  ll cnt = 0;
  for (int i = 0, i_len = (N); i < i_len; ++i) {
    if (furi < b.at(i)) {
      H -= b.at(i);
      cnt++;
    }
    if (H <= 0) {
      cout << cnt << endl;
      return 0;
    }
  }
  cnt += (H + (furi - 1)) / furi;
  cout << cnt << endl;
}
