#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
bool compare(const pair<long long, long long>& i,
             const pair<long long, long long>& j) {
  return i.first >= j.first;
}
void solve() {
  long long n, B, a, b, count = 0, sum = 0;
  cin >> n >> B;
  vector<pair<long long, bool> > vc;
  for (long long i = 1; i <= n; i++) {
    cin >> a >> b;
    vc.push_back({b, true});
    vc.push_back({a, false});
  }
  sort(vc.begin(), vc.end(), compare);
  for (long long i = 0; i < vc.size(); i++) {
    if (vc[i].second == true)
      sum += vc[i].first, count++;
    else {
      long long left = B - sum;
      if (vc[i].first - left >= 0) {
        ++count;
        break;
      }
      count = count + ((left % vc[i].first) ? (left / vc[i].first) + 1
                                            : (left / vc[i].first));
      break;
    }
    if (sum >= B) break;
  }
  cout << count << '\n';
}
int32_t main() {
  long long t = 1;
  while (t--) solve();
  return 0;
}
