#include <bits/stdc++.h>
using namespace std;
struct obj {
  string tp;
  int h;
};
bool cmp(const obj &a, const obj &b) { return a.h > b.h; }
int main(void) {
  int N, H;
  cin >> N >> H;
  vector<obj> list(N * 2);
  for (int i = 0; i < N * 2; i++) {
    list[i].tp = "b";
    if (i % 2 == 0) {
      list[i].tp = "a";
    }
    cin >> list[i].h;
  }
  sort(list.begin(), list.end(), cmp);
  long long int cnt = 0;
  for (int i = 0; i < N * 2; i++) {
    if (list[i].tp == "a") {
      cnt += H / list[i].h;
      break;
    } else {
      H -= list[i].h;
      cnt++;
    }
  }
  cout << cnt << endl;
  return 0;
}
