def solve(n, h, v):
    v = sorted(v, key=lambda x: -x[1])
    opt_a = 0
    opt_b = 0
    opt_i = 0
    for i in range(n):
        a, b = v[i]
        if (opt_a < a) or ((opt_a == a) and (opt_b > b)):
            opt_i = i
            opt_a = a
            opt_b = b
    ans = 0
    for i in range(n):
        a, b = v[i]
        if (i != opt_i) and (opt_a < b):
            h -= b
            ans += 1
            if h <= 0:
                return ans
    if h - opt_b <= 0:
        return ans + 1
    else:
        m = (h - opt_b + opt_a - 1) / opt_a
        return ans + m + 1

n, h = map(int, raw_input().split())
v = [map(int, raw_input().split()) for i in range(n)]
print solve(n, h, v)