#include <iostream>
#include <vector>
using namespace std;
long long n,m,Max=0;
vector<long long> a;
void dfs(int index,long long sum){
    Max=max(Max,sum);
    if(index==n)return;
    dfs(index+1,(sum+a[index])%m);
    dfs(index+1,sum);
}
int main() {
    cin>>n>>m;
    for(int x,i=0;i<n;i++){
        cin>>x;
        a.push_back(x%m);
    }
    dfs(0,0);
    cout<<Max;
}