#include <bits/stdc++.h>
using namespace std;
struct sword {
  int a, b;
} s[100000 + 100];
bool cmp1(sword m, sword n) {
  if (m.b < n.b) {
    return true;
  }
  return false;
}
bool cmp2(sword m, sword n) {
  if (m.a < n.a) {
    return true;
  }
  return false;
}
int main() {
  int m, n;
  int num = 0;
  double num2 = 0;
  int num3 = 0;
  scanf("%d%d", &m, &n);
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &s[i].a, &s[i].b);
  }
  sort(s, s + m, cmp2);
  num2 = (double)n / s[m - 1].a;
  if (num2 - (int)num2 > 0) {
    num2++;
  }
  sort(s, s + m, cmp1);
  for (int i = m - 1; i >= 0; i--) {
    n -= s[i].b;
    if (n > 0)
      num++;
    else if (n <= 0 && num2 > num) {
      printf("%d\n", num + 1);
      return 0;
    }
  }
  sort(s, s + m, cmp2);
  int x;
  num3 = (double)n / s[m - 1].a;
  if (num2 - (int)num2 > 0) {
    num3++;
  }
  printf("%d", num3 + num);
  return 0;
}
