#include<stdio.h>
#include<stdlib.h>
int herbs[105][2];
inline int max(int a, int b)
{
return a>b?a:b;
}
int dp(int time, int M)
{
if (M < 0)
{
return 0;
}
if (time < herbs[M][0])
{
return dp(time, M-1);
}
return max(dp(time, M-1), dp(time-herbs[M][0], M-1)+herbs[M][1]);
}
int main(void)
{
int T, M;
scanf("%d %d", &T, &M);
for (int i = 0; i<M; i++)
{
scanf("%d %d", &herbs[i][0], &herbs[i][1]);
}
int ans = dp(T, M-1);
printf("%d", ans);
return 0;
}