import numpy as np
n, h =[int(i) for i in input().split()]
ab = np.empty((n,2),dtype=int)
for i in range(n):
    ab[i,:] = np.array([int(i) for i in input().split()])
np.sort(ab[:,0])
a = ab[:,0]
b = ab[:,1]
sort_a_idx =  np.argsort(a)
sort_b_idx = np.argsort(b)
sort_a =ab[sort_a_idx,0]
sort_b =ab[sort_b_idx,1]
max_a = sort_a[-1]
b_sum = np.sum(b[b>max_a])
if b_sum > h:
    for i in range(1,n+1):
        if np.sum(sort_b[-i:]) > h:
            ret = i
            break
else:
    ret = len(b[b>max_a])
    ret += np.ceil((h -b_sum)/max_a)
print(str(int(ret)))