#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
****************************************************************/