#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>ps;
vector<long long>sum;
void PSet(vector<int>a,int n,int m){
    vector<int>s;
    ps.push_back(s);
    vector<vector<int>>ps1;
    for(int i=0;i<n;i++){
    	ps1=ps;
        for(auto &it:ps1){
            it.push_back(i);
            ps.push_back(it);
        }
    }
    for(auto it:ps){
        long long t=0;
        for(int x:it)t=(t+a[x])%m;
        sum.push_back(t);
    }
    long long ans=0;
    for(long long x:sum)ans=max(ans,x);
    cout<<ans<<endl;
}
int main(){
    int n,m;
    cin>>n>>m;
    vector<int>a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    PSet(a,n,m);
    return 0;
}
//求解幂集,分别求和,取模,再比较大小