#include <bits/stdc++.h>
using namespace std;
struct Sword {
  int a, b;
};
bool sortb(const Sword &s1, const Sword &s2) { return s1.b > s2.b; }
int main() {
  int n, h;
  cin >> n >> h;
  vector<Sword> swords(n);
  int amax = 0;
  long bsum = 0;
  for (int i = 0; i < n; i++) {
    cin >> swords[i].a >> swords[i].b;
    amax = max(amax, swords[i].a);
    bsum += swords[i].b;
  }
  sort(swords.begin(), swords.end(), sortb);
  long ans = 0;
  for (const Sword &s : swords) {
    h -= s.b;
    ans++;
    if (h <= 0) {
      cout << ans << endl;
      return 0;
    }
  }
  cout << ans + (h + amax - 1) / amax << endl;
}
