#!/usr/bin/python

import math
import sys

def main(argv):
    line = sys.stdin.readline()
    while line:
        N, H = map(lambda i: int(i), line.rstrip("\n").split(" "))
        attackes = []
        for i in xrange(N):
            a, b = map(
              lambda i: int(i), sys.stdin.readline().rstrip("\n").split(" "))
            attackes.append((i, a, "A"))
            attackes.append((i, b, "B"))

        max_a = max(
          filter(lambda t: t[2] == "A", attackes), key=lambda x: x[1])
        max_ab = attackes[max_a[0] * 2 + 1]

        hit = 0
        for t in sorted(attackes, key=lambda x: x[1], reverse=True):
#            if t[0] == max_ab[0] and t[1] == max_ab[1] and t[2] == max_ab[2]:
#                if H <= t[1]:
#                    H -= t[1]
#                    hit += 1
#                    break
#                continue

            if t[0] == max_a[0] and t[1] == max_a[1] and t[2] == max_a[2]:
                break

            H -= t[1]
            hit += 1

            if H <= 0:
                break
        
        if H > 0:
            q, r = divmod(H, max_a[1])
            hit += q
            if r > 0:
                hit += 1
        print hit

        line = sys.stdin.readline()

if __name__ == "__main__":
    main(sys.argv)