{
TASK:skok
LANG:Pascal
}
var
min,j,m:integer;
max,maxi,i,n:longint;
sk:array[1..200]of integer;
p:array[1..2,0..200000]of longint;
begin
readln(n,m);
min:=1000;
for i:=1 to m do begin read(sk[i]);if min>sk[i] then min:=sk[i];end;
for i:=0 to n do begin read(p[1,i]);p[2,i]:=0;end;
p[2,0]:=p[1,0];
max:=0;
maxi:=0;
for i:=0 to n-min+1 do
    begin
    if p[2,i]>0
    then begin
         if max<p[2,i] then begin max:=p[2,i];maxi:=i;end;
        for j:=1 to m do
         if p[2,i+sk[j]]<p[2,i]+p[1,i+sk[j]]
         then p[2,i+sk[j]]:=p[2,i]+p[1,i+sk[j]];
         end;
    end;
writeln(max,' ',maxi)
end.
