fun main(args : Array<String>) {
    val (n, h) = readLine()!!.split(" ").map { it.toInt() }
    val kk = Array(n) { readLine()!!.split(" ").map { it.toInt() } }

    val maxA = kk.maxBy { it[0] }!![0]
    val tk = kk.filter { it[1] > maxA }.sortedByDescending { it[1] }

    var cnt = 0
    var dmg = 0L

    for (i in tk) {
        dmg += i[1]
        cnt++

        if (dmg >= h) {
            println(cnt)
            return
        }
    }

    val rest = h - dmg
    println(cnt + (rest/maxA) + (if (rest % maxA == 0L) 0 else 1))
}