data class Exam(val s:Int, val p:Int, val e:Int, val a:Int) fun main() { val n = readInt() val exams = List(n) { val (s, p, e, a) = readInts() Exam(s, p, e, a) } val dp = IntArray(n + 2) { -1 } dp[0] = 0 var prev = 0 for (e in exams) { for (l in n downTo 0) { if (dp[l] != -1) { dp[l] += e.s - prev } } for (l in n downTo 0) { if (l > 0 && dp[l-1] >= e.a) { dp[l] = maxOf(dp[l], dp[l-1] - e.a + (e.e - e.p)) } } prev = e.e } println(dp.indexOf(-1) - 1) } private fun readInt() = readln().toInt() private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }