func_code_string: #include <bits/stdc++.h>   using namespace std;   multiset<int, greater<int>> m1, m2;   int n, m;   int main() {     cin >> n >> m;     for (int i = 0; i < n; ++i) {       int a;       cin >> a;       m1.insert(a);     }     for (int i = 0; i < n; ++i) {       int a;       cin >> a;       m2.insert(a);     }     vector<int> ans;     for (; m1.size();) {       auto a = m1.begin();       auto b = m2.begin();       auto bestfora = m2.lower_bound(m - 1 - *a);       auto bestforb = m1.lower_bound(m - 1 - *b);       if (bestfora == m2.end()) --bestfora;       if (bestforb == m1.end()) --bestforb;       if ((*a + *b) % m > (*a + *bestfora) % m &&           (*a + *b) % m > (*b + *bestforb) % m) {         ans.push_back((*a + *b) % m);         m1.erase(a);         m2.erase(b);       } else if ((*a + *bestfora) % m >= (*a + *b) % m &&                  (*a + *bestfora) % m >= (*b + *bestforb) % m) {         ans.push_back((*a + *bestfora) % m);         m1.erase(a);         m2.erase(bestfora);       } else {         ans.push_back((*b + *bestforb) % m);         m1.erase(bestforb);         m2.erase(b);       }     }     sort(ans.begin(), ans.end(), greater<int>());     for (size_t i = 0; i < ans.size(); ++i) cout << ans[i] <<    ;     return 0;   }   