import algorithm, future, hashes, macros, math, sequtils, sets, strutils, tables, unicode

template readString: string = stdin.readLine
template readStrings: seq[string] = stdin.readLine.split
template readInt: int = stdin.readLine.parseInt
template readInts: seq[int] = stdin.readLine.split.map(parseInt)
template readFloat: float = stdin.readLine.parseFloat
template readFloats: seq[float] = stdin.readLine.split.map(parseFloat)
proc newSeq2[T](n1, n2: Natural): seq[seq[T]] = newSeqWith(n1, newSeq[T](n2))
proc newSeq3[T](n1, n2, n3: Natural): seq[seq[seq[T]]] = newSeqWith(n1, newSeqWith(n2, newSeq[T](n3)))
template times(n: int, body: untyped): untyped = (for _ in 0..<n: body)

macro unpack*(rhs: seq, cnt: static[int]): auto =
  let t = genSym(); result = quote do:(let `t` = `rhs`;())
  for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])

# --------------------------------------------------- #

var (N, H) = readints.unpack(2)
var huri = 0
var nage = newseq[int](N)
for i in 0..<N:
  var (a, b) = readints.unpack(2)
  huri = max(huri, a)
  nage[i] = b
nage = nage.sorted(cmp).reversed
var cnt = 0
for i in 0..<N:
  if nage[i] > huri and H > 0:
    H -= nage[i]
    cnt.inc
  else:
    break
if H mod huri == 0:
  cnt += H div huri
else:
  cnt += H div huri + 1
echo cnt
