#include<stdio.h>
int max(int x,int y)
{
if(x>y)
{
return x;
}
else
{
return y;
}
}
int main(void)
{
int t,m;
scanf("%d%d",&t,&m);
int c; //接受价值和时间
int d;
int value[m+10];
int time[m+10];
int get[m+10][t+10];
for(c=1;c<=m;c++)
{
scanf("%d%d",&time[c],&value[c]);
}
for(c=0,d=0;c<=m;c++)
{
get[c][d]=0;
}
for(c=0,d=0;d<=t;d++)
{
get[c][d]=0;
}
for(c=1;c<=m;c++)
{
for(d=1;d<=t;d++)
{
if(d>=time[c])
{
get[c][d]=max(get[c-1][d],get[c-1][d-time[c]]+value[c]);
}
else
{
get[c][d]=get[c-1][d];
}
}
}
printf("%d",get[m][t]);
}