import sys
import heapq
import time
from math import *

def get_read_func(fileobject):
    if fileobject == None :
        return raw_input
    else:
        return fileobject.readline

def main():
    if len(sys.argv) > 1:
        f = open(sys.argv[1])
    else:
        f = None
    read_func = get_read_func(f);
    input_raw = read_func().strip().split()
    [N, H] = [int(input_raw[0]), int(input_raw[1])]
    a_list = []
    b_list = []
    for i in range(N):
        input_raw = read_func().strip().split()
        [a, b] = [-int(input_raw[0]), -int(input_raw[1])]
        heapq.heappush(a_list, (a, i))
        heapq.heappush(b_list, (b, i))
    (max_a, max_a_i) = a_list[0]
    count = 0
    while (H > 0):
        (max_b, max_b_i) = b_list[0]
        if -max_a >= -max_b:
            attack_num = int(ceil(float(H ) / float(-max_a)))
            H += attack_num  * max_a
            count += attack_num
        elif max_a_i != max_b_i:
            heapq.heappop(b_list)
            H += max_b
            count += 1

        elif H + max_b <= 0:
            H += max_b
            count += 1
        else:
            attack_num = int(ceil(float(H + max_b) / float(-max_a)))
            H += attack_num * max_a
            count += attack_num

    print count;

if __name__ == '__main__':
    main()
