#include<stdio.h>
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return z;
}
int max(int a,int b)
{
return a > b ? a : b;
}
int main()
{
int time[100],value[100];
int f[1000]={0};
int t,m,i,j;
int max(int x,int y);//.....比较两个数的大小。
scanf("%d%d",&t,&m);//.....输入t与m的值。
for (i=0;i<m;i++)
scanf("%d%d",&time[i],&value[i]);//....输入采某种药的时间与其价值。
for (i=0;i<m;i++)
{
for (j=t;j>0;j--)
{
if (j-time[i]>=0) f[j]=max(f[j],f[j-time[i]]+value[i]);/*.....动态规划的动态转移方程,实际上自己通过笔试就能深刻知道其运行的过程。*/
}
}
printf("%d
",f[t]);
return 0;
}