func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   int a[50];   int main() {     cin >> n >> m;     for (int i = 0; i < n; i++) {       cin >> a[i];       a[i] %= m;     }     sort(a, a + n);     set<int> S1, S2;     for (int i = 0; i < n; i++) {       set<int> s = i < n / 2 ? S1 : S2;       s.insert(a[i]);       for (auto b : i < n / 2 ? S1 : S2) {         s.insert((a[i] + b) % m);       }       if (i < n / 2)         S1 = s;       else         S2 = s;     }     S1.insert(0);     S2.insert(0);     int best = 0;     for (auto b : S1) {       best = max(best, b + *(--S2.lower_bound(m - b)));     }     cout << best;     return 0;   }   