using System;
using System.Collections.Generic;
using System.Linq;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] x = Console.ReadLine().Split().Select(int.Parse).ToArray();
            int max = 0; int[] Throw = new int[x[0]];
            for (int i = 0; i < x[0]; i++)
            {
                int[] a = Console.ReadLine().Split().Select(int.Parse).ToArray();
                max = Math.Max(max,a[0]);
                Throw[i] = a[1];
            }
            int swing = 0;
            for (int i = 0; i < x[0]; i++)
            {
                if (Throw[i] > max) swing++;
                else Throw[i] = 0;
            }
            if (Throw.Sum() >= x[1])
            {
                Array.Sort(Throw); Array.Reverse(Throw);
                int damage = 0; int i = 0;
                for (; ; i++)
                {
                    damage += Throw[i];
                    if (damage >= x[1]) break;
                }
                Console.WriteLine(i);
            }
            else
            {
                Console.WriteLine(swing + ((x[1] - Throw.Sum() - 1) / max + 1));
            }
        }
    }
}