#include <stdio.h>

int main(void) {
    int n;
    long long m, a[20];
    scanf("%d%lld", &n, &m);
    for(int i = 0; i < n; i++)
        scanf("%lld", &a[i]);

    long long max = 0;
    for(int i = 0; i < (1 << n); i++){  // 1 << n表示2的n次方
        long long sum = 0;
        for(int j = 0; j < n; j++)
            if(i & (1 << j))    // 1 << j同理
                sum = (sum + a[j]) % m;
        if(sum > max)
            max = sum;
    }
    printf("%lld\n", max);
    return 0;
}