var
n,m,i,j,k:longint;
v,w,v1,w1,v2,w2,x,p,q,a:array[1..60] of longint;
f:array[0..1,0..32000] of longint;
begin
assign(input,'budget.in');reset(input);
assign(output,'budget.out');rewrite(output);
read(n,m);
for i:=1 to m do
begin
read(x,p,q);
if q=0 then begin inc(j);v[j]:=x;w[j]:=v[j]*p;a:=j;end;
end;
for i:=1 to m do
if q>0 then
if v1[a[q]]=0 then begin v1[a[q]]:=x;w1[a[q]]:=v1[a[q]]*p;end
else begin v2[a[q]]:=x;w2[a[q]]:=v2[a[q]]*p;end;
m:=j;
for i:=1 to m do
begin
for j:=1 to n do
begin
if (j>=v)and(f[0,j-v]+w>f[1,j]) then f[1,j]:=f[0,j-v]+w;
if (j>=v+v1)and(f[0,j-v-v1]+w+w1>f[1,j]) then
f[1,j]:=f[0,j-v-v1]+w+w1;
if (j>=v+v2)and(f[0,j-v-v2]+w+w2>f[1,j]) then
f[1,j]:=f[0,j-v-v2]+w+w2;
if (j>=v+v1+v2)and(f[0,j-v-v1-v2]+w+w1+w2>f[1,j])
then f[1,j]:=f[0,j-v-v1-v2]+w+w1+w2;
end;
f[0]:=f[1];
end;
writeln(f[1,n]);
close(input);close(output);
end.