#include using namespace std; typedef long long ll; ll p[1010],q[1010],dp[1010][1010],l[1010],r[1010],INF = 10000000000000; int main(){ int i,j,n,d; cin >> n >> d; for(i=0;i> p[i] >> q[i]; ll le = -INF,ri = INF; while(ri - le>1){ ll mid = (le + ri)/2; for(j=0;j=mid) dp[0][j] = q[j] - p[j]; else dp[0][j] = -INF; } l[0] = -INF,r[n] = -INF; for(j=1;j<=n;j++) l[j] = max(l[j - 1],dp[0][j - 1]); for(j=n - 1;j>=0;j--) r[j] = max(r[j + 1],dp[0][j]); for(i=1;i=mid) dp[i][j] = mx + q[j] - p[j]; else dp[i][j] = -INF; } l[0] = -INF,r[n] = -INF; for(j=1;j<=n;j++) l[j] = max(l[j - 1],dp[i - 1][j - 1]); for(j=n - 1;j>=0;j--) r[j] = max(r[j + 1],dp[i - 1][j]); } int cnt = 0; for(j=0;j