1.14 s
n, p = map(int, input().split())
v = list(map(int, input().split()))
f = [0 for i in range(n + 1)]
for i in range(n):
f[i + 1] = v[i]
for i in range(1, n):
v[i] += v[i - 1]
MIN = 0
for i in range(n):
f[i + 1] = max(f[i + 1], v[i] - MIN)
MIN = min(MIN, v[i])
for i in range(2, n + 1):
f[i] = max(f[i], f[i - 1])
v[0] = f[1]
MIN = v[0] + f[1]
for i in range(1, n):
v[i] = MIN
MIN += max(0, f[i + 1])
for i in range(1, n):
v[0] = max(v[0], v[i])
if (v[0] < 0):
neg = -1
else:
neg = 1
print((abs(v[0]) % p) * neg)