from math import ceil
from heapq import heappush,heappop

def attack(AB,H,N):
    C,T = [],[] #斬撃, 投擲
    for i in range(N):
        a,b = AB[i][0],AB[i][1]
        heappush(C,[-a,i])
        heappush(T,[-b,i])

    count,Used = 0,set()
    while H > 0:
        if len(T) == 1:
            u = heappop(C)
            v = heappop(T)
            c,t = -u[0],-v[0]
            if H <= -t:
                count += 1
                Used.add(v[1])
                H = 0
            else:
                count += (ceil((H-t)/c)+1)
                Used.add(v[1])
                H = 0
        else:
            v1 = heappop(T)
            v2 = heappop(T)
            t1,t2 = -v1[0],-v2[0]
            while True:
                u = heappop(C)
                if u[1] not in Used:
                    c = -u[0]
                    break
            if c >= t2:
                count += (ceil((H-t1)/c)+1)
                Used.add(v1[1])
                H = 0
            else:
                H -= t1
                count += 1
                Used.add(v1[1])
                heappush(C,u)
                heappush(T,v2)

    return count

def main():
    N,H = map(int,input().split())
    AB = [list(map(int,input().split())) for _ in range(N)]

    print(attack(AB,H,N))

if __name__ == "__main__":
    main()
