import math
def solve():
    N, H = map(int, input().split())
    A = []
    AB = []
    a_max = 0
    a_max_idx = -1
    a_max_b = 0

    for i in range(N):
        a, b = map(int, input().split())
        A.append(a)
        AB.append((a,b,i))

        if a_max < a:
            a_max = a
            a_max_b = b
            a_max_idx = i
    
    AB.sort(key=lambda x:x[1], reverse=True)

    i = 0
    cnt = 0
    while H > 0:
        if i < N and a_max_idx == AB[i][2]:
            i += 1
            continue

        if i < N and a_max < AB[i][1]:
            H -= AB[i][1]
            i += 1
        else:
            if a_max < a_max_b and H <= a_max_b:
                H -= a_max_b
            else:
                cnt += math.ceil(H/a_max)

                break

        cnt += 1

    print(cnt)
    
if __name__ == '__main__':
    solve()