#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;
}



京公网安备 11010502036488号