#include<bits/stdc++.h>
using namespace std;

pair<int, int> P[100000];

int main()
{
  long long n,h;
  cin >> n >> h;
  for(int i=0;i < n;i++){
    cin >> P[i].first >> P[i].second;
  }
  sort(P,P+n);
  maxi = P[n-1].first;
  
  for(int i=0;i < n-1;i++){
    maxi = max(P[i].second,maxi);
  }
  long long rest = h;
  long long cnt=0;

  if(P[n-1].second >= h){
    cout << 1 << endl;
  }
  else if(maxi == P[n-1].first){
    while(rest > P[n-1].second){
      rest -= P[n-1].first;
      cnt++;
    }
    cout << cnt+1 << endl;
  }
  else{
    long long k=0;
    vector<int> store(n,0);
    
    for(int i=0;i < n-1;i++){
      if(P[i].second > P[n-1].first){
	store[k++] = P[i].second;
      }
    }
    long long cc=0;
    k=0;
    while(rest > P[n-1].second && store[k] != 0){
      rest -= store[k++];
      cnt++;
    }
    while(rest > P[n-1].second){
      rest -= P[n-1].first;
      cc++;
    }
    cout << cnt+cc+1 << endl;
  }
  return 0;
}