#include <stdio.h>
#include <string.h>
#define max(x,y) (x>y)?x:y
int main ()
{
int T,M,a,b;
scanf("%d %d",&T,&M);
int i,j;
int dp[M+1][T+1];
memset(dp,0,sizeof(dp));
for(i=1;i<=M;i++)
{
scanf("%d %d",&a,&b);
for(j=1;j<=T;j++)
{
if(j>=a)
dp[i][j]=max(dp[i-1][j],dp[i-1][j-a]+b);
else
dp[i][j]=dp[i-1][j];
}
}
printf("%d",dp[M][T]);
return 0;
}
/**************************************************************
Problem: 1778
User: admin
Language: C
Result: Accepted
Time:11 ms
Memory:1144 kb
****************************************************************/