#include <iostream>
#include <vector>
using namespace std;
//dfs 穷举
int vMax = 0;
void dfs(const vector<int>& data, int i, int sum, int m) {
    if(i == data.size()) {
        vMax = max(vMax, sum);
        return;
    }
    // 不选
    dfs(data, i+1, sum, m);
    // 选
    dfs(data, i+1, (sum + data[i])%m, m);
}

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> data(n);
    for(auto& v : data) {
        cin >> v;
    }
    dfs(data, 0,0,m);
    cout << vMax << endl;
}
// 64 位输出请用 printf("%lld")