func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100;   int n, m, ans;   int num[maxn];   set<int> st[2];   set<int>::iterator it, itt;   void get_st(int begin, int end, set<int> &st) {     st.clear();     st.insert(0);     for (int i = 0; i < (1 << (end - begin)); ++i) {       int tmp = 0;       for (int j = 0; j < end - begin; ++j) {         if (((i >> j) & 1) == 1) {           tmp = (tmp + num[j + begin]) % m;         }       }       st.insert(tmp);     }   }   int main() {     ios::sync_with_stdio(false);     while (scanf( %d%d , &n, &m) != EOF) {       ans = 0;       for (int i = 0; i < n; ++i) {         scanf( %d , &num[i]);       }       get_st(0, (n + 1) / 2, st[0]);       get_st((n + 1) / 2, n, st[1]);       for (it = st[0].begin(); it != st[0].end(); ++it) {         for (int i = 1; i <= 2; ++i) {           itt = st[1].lower_bound(m * i - *it);           if (itt != st[1].begin()) {             --itt;             ans = max(ans, (*it + *itt) % m);           }         }       }       printf( %d n , ans);     }     return 0;   }   