#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
const int mo = 1000000007;
inline int IN() {
  char ch;
  (ch = getchar());
  int f = 0, x = 0;
  for (; ((ch) == '\n' || (ch) == '\r' || (ch) == '\t' || (ch) == ' ');
       (ch = getchar()))
    ;
  if (ch == '-') f = 1, (ch = getchar());
  for (; !((ch) == '\n' || (ch) == '\r' || (ch) == '\t' || (ch) == ' ');
       (ch = getchar()))
    x = x * 10 + ch - '0';
  return (f) ? (-x) : (x);
}
int Pow(int x, int y, int p) {
  int A = 1;
  for (; y; y >>= 1, x = (long long)x * x % p)
    if (y & 1) A = (long long)A * x % p;
  return A;
}
int n, m;
long long s;
pair<long double, long double> a[N];
long double zhi[N];
struct line {
  long double k, b;
  long long inter(line c) {
    return (long long)(c.b - b) / (long long)(k - c.k);
  }
  long double Val(long double x) { return k * x + b; }
} c[N];
int tot;
pair<long double, long double> calc(long double x) {
  int l = 1, r = tot;
  while (l <= r) {
    int md = (l + r) >> 1;
    if (md > 1 && c[md - 1].Val(zhi[md]) >= x)
      r = md - 1;
    else if (md < tot && c[md].Val(zhi[md + 1]) < x)
      l = md + 1;
    else {
      long long K = c[md].k, B = c[md].b, X = x;
      long long t = (X - B) / K + ((X - B) % K > 0);
      return make_pair(t, K * t + B - X);
    }
  }
  return make_pair(0, 0);
}
int main() {
  cin >> n >> s;
  for (int i = (int)1; i <= (int)n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    a[i].first = x;
    a[i].second = y;
  }
  sort(a + 1, a + n + 1);
  int w = n;
  for (; a[w].second > 0; w--)
    ;
  int LINE = 0;
  for (int i = (int)w; i <= (int)n; i++) {
    if (i > w && a[i].first == a[i - 1].first) continue;
    if (!tot) {
      c[++tot] = (line){a[i].first, 0};
      zhi[tot] = -100000;
      continue;
    }
    pair<long double, long double> A = calc(a[i].second);
    line now = (line){a[i].first, A.second - A.first * a[i].first};
    while (tot >= 1 && c[tot].inter(now) <= zhi[tot]) tot--;
    c[++tot] = now;
    if (tot == 1)
      zhi[tot] = -100000;
    else
      zhi[tot] = c[tot - 1].inter(c[tot]);
  }
  cout << (long long)calc(s).first << endl;
  return 0;
}
