#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 7;
struct Infor {
  long long dam;
  bool iswield;
} infor[200010];
bool cmp(Infor a, Infor b) {
  if (a.dam > b.dam) {
    return true;
  } else {
    return false;
  }
}
int main() {
  long long n, h;
  cin >> n >> h;
  long long a, b;
  for (long long i = 0; i < 2 * n; i += 2) {
    cin >> a >> b;
    infor[i].dam = a;
    infor[i + 1].dam = b;
    infor[i].iswield = true;
    infor[i + 1].iswield = false;
  }
  sort(infor, infor + 2 * n, cmp);
  long long sum = 0;
  long long cnt = 0;
  for (long long i = 0; i < 2 * n; i++) {
    if (infor[i].iswield == true) {
      cnt += ceil((double)(h - sum) / infor[i].dam);
      sum = INT_MAX;
    } else {
      sum += infor[i].dam;
      cnt++;
    }
    if (sum >= h) {
      cout << cnt << endl;
      break;
    }
  }
  return 0;
}
