# Process input
n, m = tuple(map(int, input().split()))
arr = list(map(int, input().split()))

# DFS
def dfs(i, acc):
    if i == len(arr):
        return acc % m
    return max(dfs(i+1, acc), dfs(i+1, acc+arr[i]))

# Call func and output
res = dfs(0, 0)
print(res)