#include <bits/stdc++.h>
using namespace std;
int n, h;
int ans;
struct node {
  int an, bn;
} a[100005];
int b[100005];
bool cmp(int x, int y) { return x > y; }
int main() {
  cin >> n >> h;
  for (int i = 1; i <= n; i++) cin >> a[i].an >> a[i].bn;
  int maxn = 0;
  for (int i = 1; i <= n; i++)
    if (a[i].an > maxn) maxn = a[i].an;
  sort(b + 1, b + n + 1, cmp);
  int j = 1;
  for (int i = 1; i <= n; i++) {
    if (a[i].bn > maxn) {
      b[j] = a[i].bn;
      j++;
    }
  }
  for (int i = 1; i <= j; i++) {
    ans++;
    h -= b[i];
    if (h <= 0) {
      cout << ans;
      return 0;
    } else
      continue;
  }
  while (h > 0) {
    h -= maxn;
    ans++;
  }
  cout << ans;
  return 0;
}
