#include <bits/stdc++.h>
using namespace std;
void put(int x) {
  if (x < 0) {
    putchar('-');
    x *= -1;
  }
  if (x == 0) {
    putchar('0');
  }
  int num = 0;
  char c[15];
  while (x) {
    c[++num] = (x % 10) + 48;
    x /= 10;
  }
  while (num) {
    putchar(c[num--]);
  }
  putchar('\n');
}
inline void in(int &x) {
  char ch = getchar();
  int flag = 1;
  while (!(ch >= '0' && ch <= '9')) {
    if (ch == '-') flag *= -1;
    ch = getchar();
  }
  x = ch - '0';
  ch = getchar();
  while (ch >= '0' && ch <= '9') {
    x = ((x << 3) + (x << 1)) + ch - '0';
    ch = getchar();
  }
  x *= flag;
}
int n, sum, ans;
struct ac {
  int k, f;
} a[100005];
bool cmp(ac a, ac b) {
  if (a.f != b.f)
    return a.f > b.f;
  else
    return a.k < b.k;
}
int main() {
  in(n);
  in(sum);
  for (int i = 1; i <= n; i++) {
    in(a[i].k);
    in(a[i].f);
  }
  sort(a + 1, a + n + 1, cmp);
  for (int i = 1; i < n; i++) {
    sum -= a[i].f;
    ans++;
    if (sum < 0) {
      printf("%d\n", ans);
      return 0;
    }
  }
  if (sum < a[n].f) {
    printf("%d\n", ans + 1);
    return 0;
  }
  sum -= a[n].f;
  ans++;
  ans += (sum - 1) / a[n].k + 1;
  printf("%d\n", ans);
  return 0;
}
