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