uses crt;
var i,st,sl,tong,dem,min,tt:longint; l,s,b:array[0..100000]of longint;
d:text;
procedure kt;
var t,tt:longint;
begin
t:=0; tt:=0;
for i:=1 to sl do begin inc(tt,b[i]); inc(t,b[i]*L[I]); end;
if(t=st) then begin inc(dem); if tt<min then min:=tt; end;
end;
function dequy(a:longint):longint;
var i,j:longint;
begin
for i:=0 to s[a] do
begin
b[a]:=i;
if a=sl then begin kt; dequy:=1 end
else dequy(a+1);
end;
end;
begin
clrscr;
assign(d,'input.pas');reset(d);
min:=high(longint);
readln(d,st,sl);
for i:=1 to sl do readln(d,l[i],s[i]);
close(d);
dequy(1);
writeln(dem,' ',min);
readln
end.
Bài này dùng đệ quy.