using System;
using System.Collections.Generic;

namespace AtCoderTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] input = Console.ReadLine().Split(' ');
            int weaponCount = int.Parse(input[0]);
            int hp = int.Parse(input[1]);
     //       List<int> hitDamageList = new List<int>();
            List<int> throwDamageList = new List<int>();
            int maxHitDamage = 0;
            int turnCount = 0;
            int damage = 0;

            for (int i = 0; i < weaponCount; i++)
            {
                string[] str = Console.ReadLine().Split(' ');
         //       hitDamageList.Add(int.Parse(str[0]));
                throwDamageList.Add(int.Parse(str[1]));
                if (maxHitDamage < int.Parse(str[0]))
                {
                    maxHitDamage = int.Parse(str[0]);
                }
            }

            throwDamageList.Sort();

            for (int i = weaponCount - 1; i >= 0; i--)
            {
                if (throwDamageList[i] < maxHitDamage)
                {
                    break;
                }
                damage += throwDamageList[i];
                turnCount++;
                if (hp - damage < 0)
                {
                    break;
                }
            }

            if (hp - damage > 0)
            {
                double hitTurnCount = 1.0 * (hp - damage) / maxHitDamage;
                hitTurnCount = Math.Ceiling(hitTurnCount);
                turnCount = turnCount + (int)hitTurnCount;
            }

            Console.WriteLine(turnCount);
    //        Console.ReadLine();

        }
    }
}