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.
cHJvZ3JhbSBhaXJwb3J0Owp2YXIKbixtLGksaiA6IGxvbmdpbnQ7CnQgOiBhcnJheVsxLi4xMDAwXSBvZiBsb25naW50OwptYXgsbWluIDogbG9uZ2ludDsKYmVnaW4KCXJlYWRsbihuLG0pOwoJZm9yIGk6PSAxIHRvIG0gZG8KCWJlZ2luCgkJcmVhZCh0W2ldKTsKCWVuZDsKCWZvciBpIDo9IDEgdG8gKG4gZGl2IG0pIGRvCgliZWdpbgoJCWZvciBqIDo9IDEgdG8gbSBkbwoJCWJlZ2luCgkJbWF4IDo9IG1heCArICh0W2pdLWkrMSk7CgkJZW5kOwoJZW5kOwoJZm9yIGkgOj0gMSB0byAobiBtb2QgbSkgZG8KCWJlZ2luCgkJbWF4IDo9IG1heCArICh0W2ldLShuIGRpdiBtKSsxKTsKCWVuZDsKCWZvciBpIDo9IDEgdG8gbSBkbwoJYmVnaW4KCQlpZiBuPHRbaV0gdGhlbiBtaW4gOj0gbWluICsgKHRbaV0qKHRbaV0rMSkgZGl2IDIpIC0gKG4qKG4rMSkgZGl2IDIpCgkJZWxzZQoJCW1pbiA6PSBtaW4gKyAodFtpXSoodFtpXSsxKSBkaXYgMik7CgkJbiA6PSBuLXRbaV07CgllbmQ7Cgl3cml0ZWxuKG1heCwnICcsbWluKTsKZW5kLg==