#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 27;
const int MOD = (int)1e9 + 7;
int n, h;
pair<int, int> katana[100010];
void read() {
  cin >> n >> h;
  for (int i = 0; i < n; i++) cin >> katana[i].second >> katana[i].first;
  return;
}
int main(void) {
  read();
  int maxa = -1, maxi, zako;
  sort(katana, katana + n, greater<pair<int, int> >());
  for (int i = 0; i < n; i++) {
    if (maxa < katana[i].second) {
      maxi = i;
      maxa = katana[i].second;
    }
  }
  zako = n;
  for (int i = 0; i < n; i++) {
    if (katana[i].first < maxa) {
      zako = i;
      break;
    }
  }
  int cnt = 0;
  int cnt1 = 0;
  for (int i = 0; i < zako; i++) {
    if (i == maxi) continue;
    h -= katana[i].first;
    cnt++;
    if (h <= 0) {
      cnt1 = cnt;
      break;
    }
  }
  h -= katana[maxi].first;
  cnt++;
  if (h > 0) {
    if (h % katana[maxi].second == 0)
      cnt += h / katana[maxi].second;
    else
      cnt += h / katana[maxi].second + 1;
  }
  int cnt2 = 0;
  for (int i = 0; i < zako; i++) {
    h -= katana[i].first;
    cnt2++;
    if (h <= 0) {
      break;
    }
  }
  int mincnt;
  mincnt = min(cnt1, cnt2);
  mincnt = min(cnt, mincnt);
  cout << cnt << endl;
  return 0;
}
