import std.functional,
       std.algorithm,
       std.bigint,
       std.string,
       std.traits,
       std.array,
       std.range,
       std.stdio,
       std.conv;

void main() {
  long[] NH = readln.chomp.split.to!(long[]);
  long N = NH[0],
       H = NH[1];
  long[] a, b, ks;
  long ma;
  long idx;
  bool[long] isb;
  long ans;

  foreach (_; 0..N) {
    long[] ab = readln.chomp.split.to!(long[]);
    a ~= ab[0];
    b ~= ab[1];
  }

  a = a.sort!"a>b".array;
  ma = a[0];

  foreach (e; b) {
    if (e >= ma) {
      ks ~= e;
    }
  }

  while (H > 0) {
    if (idx < ks.length) {
      H -= ks[idx++];
      ans++;
    } else {
      long n = H / ma;
      H -= n * ma;
      if (H > 0) {
        H -= ma;
        n++;
      }
      ans += n;
    }
  }

  writeln(ans);
}
