var
n,m,i,j:longint;
f:array[0..1000,0..1000] of longint;
v,a:array[1..200] of longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;
begin
readln(m,n);
for i:=1 to n do
readln(v[i],a[i]);
for i:=1 to n do
for j:=1 to m do
if j>=v[i] then f[i,j]:=max(f[i-1,j-v[i]]+a[i],f[i-1,j])
else f[i,j]:=f[i-1,j];
writeln(f[n,m]);
end.