var t,m,i,j:integer;
a,b:array[1..1000] of longint;
f:array[0..2000,0..2000] of longint;
function max(a,b:longint):longint;
begin
if a>b then max:=a
else max:=b;
end;
begin
readln(t,m);
for i:=1 to m do
readln(a[i],b[i]);
for i:=0 to t do
for j:=0 to m do
f[i,j]:=0;
for i:=1 to m do
for j:=t downto 1 do
if j>=a[i] then f[i,j]:=max(f[i-1,j-a[i]]+b[i],f[i-1,j])
else f[i,j]:=f[i-1,j];
writeln(f[m,t]);
end.
/**************************************************************
Problem: 2254
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/