import numpy as np
n,h=map(int, input().split())
l=[]
for i in range(n):
    list.append(l,list(map(int,input().split())))
m=np.array(l)
a, b = np.max(m,axis=0)
a_i,b_i = np.argmax(m,axis=0)
ct=0
if a==m[b_i][0]:
    m[b_i][1] = 0
    for i in range(n-1):
        if h<=b:
                break
        elif np.max(m,axis=0)[1]<a:
            break
        else:
            if np.max(m,axis=0)[1]>=a:
                h=h-np.max(m,axis=0)[1]
                m[np.argmax(m,axis=0)[1]][1]=0
                ct = ct+1
                if h<=b:
                    break
            else:
                break
    if h>b:
        ct = 2+ct+(h-b)//a
    else:
        pass

else:
    c = m[a_i][1]
    m[a_i][1]=0
    for i in range(n-1):
        if np.max(m,axis=0)[1]>=a:
            if np.max(m,axis=0)[1]<b:
                if h<=b:
                    ct=ct+1
                    break
                else:
                    pass
            else:
                pass
            h=h-np.max(m,axis=0)[1]
            m[np.argmax(m,axis=0)[1]][1]=0
            ct = ct+1
        else:
            break
    while h>b:
        ct = 2+ct+(h-b)//a
print(ct)
    
