
import java.util.*

fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val N = scanner.nextLong()
    val H = scanner.nextLong()
    val aList = arrayListOf<Long>()
    val bList = arrayListOf<Long>()
    var count: Long = 0
    (1..N).forEach {
        aList.add(scanner.nextLong())
        bList.add(scanner.nextLong())
    }
    val max = aList.max()!!
    val filterList = bList.filter { it > max }.sorted().reversed()
    var hitpoint=H
    for (it in filterList) {
        hitpoint-=it
        count++
        if(hitpoint<=0){
            println(count)
            return
        }
    }
    count+=hitpoint/max
    hitpoint%=max
    if(hitpoint>0)count++
    println(count)
}
