a,b=[int(x) for x in str(input()).split()]
ab=[[0,0]]

ma=0  #max weild
ms=[]  #number of max weild
for j in range(1,a+1):
  A=[int(x) for x in str(input()).split()]
  ma=max(ma,A[0])
  ab.append(A)

br=100000000000 #min throw amoung max weild
for j in range(1,a+1):
  if ab[j][0]==ma:
    ms.append(j)
    br=min(br,ab[j][1])

index=0  #index of ideal weild katana

for j in range(1,a+1):
  if ab[j][1]==br:
    index=j

count=0
for i in range(1,a+1):
  if i!=index and ab[i][1]>=ma and b>0 and a!=1:
    count+=1
    b-=ab[i][1]
  else:
    count+=1
    b-=br



def cel(x):
  if x==int(x):
    return x
  else:
    return int(x)+1



if b>0:
  count+=(cel(b/ma))




print(int(count))






