#!/usr/bin/python3 n = int(input()) exams = [[int(x) for x in input().split()] for _ in range(n)] # dp[i][j] is: # the max amount of unallocated prep time at the end of exam i - 1, after passing j exams, or # -1 if it is not possible to pass j exams at the end of exam i - 1. # (exam -1 means the time 0) dp = [[-1]*(n+1) for _ in range(n+1)] dp[0][0] = 0 for i in range(1, n+1): dp[i][0] = dp[i-1][0] + exams[i-1][0] - (exams[i-2][2] if (i - 2 >= 0) else 0) for i in range(1, n+1): for j in range(1, n+1): if dp[i-1][j] != -1: dp[i][j] = dp[i-1][j] + (exams[i-1][0] - (exams[i-2][2] if (i - 2 >= 0) else 0)) if dp[i-1][j-1] >= 0 and dp[i-1][j-1] + (exams[i-1][0] - (exams[i-2][2] if i - 2 >= 0 else 0)) >= exams[i-1][3]: dp[i][j] = max(dp[i][j], dp[i-1][j-1] + (exams[i-1][0] - (exams[i-2][2] if i - 2 >= 0 else 0)) - exams[i-1][3] + exams[i-1][2] - exams[i-1][1]) print(max(j for j in range(n+1) if dp[-1][j] >= 0))