fun main(args: Array<String>) {
    var (n, h) = readIntegerList()
    val abArray = Array(n) { readIntegerList() }
    val maxA = abArray.maxBy { it[0] }!![0]
    val sortedByB = abArray.sortedByDescending { it[1] }
    var ans = 0
    var i = 0
    while (h > 0 && i < n && sortedByB[i][1] > maxA) {
        h -= sortedByB[i][1]
        i++
        ans++
    }
    ans += (Math.max(h, 0) + maxA - 1) / maxA
    println(ans)
}

fun readInteger() = readLine()!!.toInt()
fun readLong() = readLine()!!.toLong()
fun readStringList() = readLine()!!.split(" ")
fun readIntegerList() = readStringList().map(String::toInt)
fun readLongList() = readStringList().map(String::toLong)
