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