#include <bits/stdc++.h>
using namespace std;
long long n, monster, pos, lempar[200000], attacks, a;
pair<int, int> katana[200000];
int main() {
  cin >> n >> monster;
  for (int i = 1; i <= n; i++) {
    cin >> katana[i].first >> katana[i].second;
  }
  sort(katana + 1, katana + n + 1);
  for (int i = n; i >= 1; i--) {
    if (katana[i].first != katana[i - 1].first) {
      pos = i;
      break;
    }
  }
  for (int i = n; i >= 1; i--) {
    if (i == pos || katana[pos].first >= katana[i].second) continue;
    a++;
    lempar[a] = katana[i].second;
  }
  sort(lempar + 1, lempar + a + 1);
  lempar[0] = 0;
  for (int i = a; i >= 1; i--) {
    attacks++;
    if (monster - katana[pos].second <= 0) {
      cout << attacks << endl;
      return 0;
    }
    monster -= lempar[i];
    if (monster <= 0) {
      cout << attacks << endl;
      return 0;
    }
  }
  monster -= katana[pos].second;
  attacks++;
  attacks += monster / katana[pos].first;
  if (monster % katana[pos].first != 0) attacks++;
  cout << attacks << endl;
}
