#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
bool debug = false;
int main() {
  pair<int, int> tmp[10005];
  vector<int> data;
  int ans = 1000000000;
  int n, h;
  cin >> n >> h;
  int maxi = -1;
  for (int i = 0; i < int(n); i++) {
    int a, b;
    cin >> a >> b;
    tmp[i] = make_pair(a, b);
    maxi = max(maxi, a);
  }
  for (int i = 0; i < int(n); i++) {
    if (maxi < tmp[i].second) data.push_back(tmp[i].second);
  }
  sort((data).begin(), data.end());
  reverse((data).begin(), data.end());
  int cnt = 0;
  for (int i = 0; i < int(data.size()); i++) {
    if (h <= 0) break;
    cnt++;
    h -= data[i];
  }
  if (h > 0) {
    cnt += h / maxi + (h % maxi != 0 ? 1 : 0);
  }
  cout << cnt << endl;
  return 0;
}
