题目传送门:https://www.luogu.com.cn/problem/P1280
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
const int MAXN = 10005;
map<int,vector<int> > tasks;
int dp[MAXN];
inline void Dynamic(int n){
for(int i=n;i>=1;i--){
if(tasks[i].size() == 0){
dp[i] = dp[i+1] + 1;
}else{
for(int j=0;j<tasks[i].size();j++){
int t = tasks[i][j];
dp[i] = max(dp[i],dp[i+t]);
}
}
}
}
int main(){
int n,k;
int p,t;
cin>>n>>k;
while(k--){
cin>>p>>t;
tasks[p].push_back(t);
}
Dynamic(n);
cout<<dp[1]<<endl;
return 0;
}