
import numpy as np

import itertools

import math 
from collections import defaultdict as dd
def main():
    N, Y = map(int, input().split())

    A = []
    for n in range(N):
        a,b = map(int, input().split())
        A.append([a,b])

    A = np.array(A)
    max = np.max(A[:,0])

    A = A[A[:, 1] > max]
    A.sort(axis=1)


    count = 0
    s = Y
    for k in range(A.shape[0]):
        a = A[-(k+1)][1]
        s -= a
        count += 1
        if s <= 0:
            print (count)
            return

    a = (s//max) 

    if s == a*max:
        print ((s//max)+count)

    else:
        print ((s//max)+count+1)





if __name__ == "__main__":
    # global stime
    # stime = time.clock()
    main()

