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