#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;
}
//求解幂集,分别求和,取模,再比较大小