program airport;
var
n,m,i,j : longint;
t : array[1..1000] of longint;
max,min : longint;
begin
	readln(n,m);
	for i:= 1 to m do
	begin
		read(t[i]);
	end;
	for i := 1 to (n div m) do
	begin
		for j := 1 to m do
		begin
		max := max + (t[j]-i+1);
		end;
	end;
	for i := 1 to (n mod m) do
	begin
		max := max + (t[i]-(n div m)+1);
	end;
	for i := 1 to m do
	begin
		if n<t[i] then min := min + (t[i]*(t[i]+1) div 2) - (n*(n+1) div 2)
		else
		min := min + (t[i]*(t[i]+1) div 2);
		n := n-t[i];
	end;
	writeln(max,' ',min);
end.