import java.io.BufferedInputStream


const val YES = "Yes"
const val NO = "No"

// Generated by 1.1.4 https://github.com/kyuridenamida/atcoder-tools  (tips: You use the default template now. You can remove this line by using your custom template)
fun main(args: Array<String>) {
    fun StringArray(size: Int, init: (Int) -> String = { "\u0000" }): Array<String> {
        return Array<String>(size, init)
    }
    fun iterateTokens(): Iterator<String> {
        val reader = BufferedInputStream(System.`in`).bufferedReader()
        val iterator = reader.lineSequence()
                .map { it.split(" ") }
                .reduce { left, right -> left + right }
                .iterator()
        return iterator
    }
    val N = readLine()!!.toLong()
    val AB = Array<Pair<Long, Long>>(N.toInt(), {
        val (a, b) = readLine()!!.split(" ").map{ it.toLong() }
        Pair(a, b)
    })
    solve(N, AB)
}

fun solve(N: Long, AB: Array<Pair<Long, Long>>){
    val n = N.toInt()
    val ab = AB.sortedBy{ it.second }
    var time = 0L
    for ( i in 0 until n){
        time += ab[i].first
        if (time > ab[i].second){
            println(NO)
            return
        }
    }
    println(YES)
    return
}

