var n,k,i,j,jmax,vmax,lmax:integer;
a,l,v:array[1..1000] of integer;
begin
readln(n,k);
for i:=1 to n do
begin
read(a[i]);
v[i]:=a[i];
end;
fillchar(l,sizeof(l),0);
l[1]:=1;
l[n+1]:=1;
vmax:=0;
for i:=1 to n do
begin
jmax:=n+1;
for j:=i-1 downto 1 do
begin
if (l[i]<=l[j]) and ((v[j] mod k=0) or ((v[i]+v[j]) mod k=0)) then jmax:=j;
v[i]:=a[i]+v[jmax];
l[i]:=l[jmax]+1;
end;
if vmax<v[i] then vmax:=v[i];
end;
write(vmax);
end.
dmFyIG4sayxpLGosam1heCx2bWF4LGxtYXg6aW50ZWdlcjsKICAgIGEsbCx2OmFycmF5WzEuLjEwMDBdIG9mIGludGVnZXI7CmJlZ2luCglyZWFkbG4obixrKTsKCWZvciBpOj0xIHRvIG4gZG8KCWJlZ2luCgkJcmVhZChhW2ldKTsKCQl2W2ldOj1hW2ldOwoJZW5kOwoJCglmaWxsY2hhcihsLHNpemVvZihsKSwwKTsKCWxbMV06PTE7CglsW24rMV06PTE7CgkKCXZtYXg6PTA7Cglmb3IgaTo9MSB0byBuIGRvCgliZWdpbgoJCWptYXg6PW4rMTsKCQlmb3Igajo9aS0xIGRvd250byAxIGRvCgkJYmVnaW4KCQkJaWYgKGxbaV08PWxbal0pIGFuZCAoKHZbal0gbW9kIGs9MCkgb3IgKCh2W2ldK3Zbal0pIG1vZCBrPTApKSB0aGVuIGptYXg6PWo7CgkJCXZbaV06PWFbaV0rdltqbWF4XTsKCQkJbFtpXTo9bFtqbWF4XSsxOwoJCWVuZDsKCQlpZiB2bWF4PHZbaV0gdGhlbiB2bWF4Oj12W2ldOwoJZW5kOwoJCgl3cml0ZSh2bWF4KTsKZW5kLg==