func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 65, MAXM = 65;   int N, M;   int A[MAXN], B[MAXM];   int Id[40011], Pos[MAXN * MAXM], Pc;   bool VisA[MAXN], VisB[MAXM];   int Ans, Cnt;   int Val[MAXN * MAXM];   int main() {     ios_base::sync_with_stdio(false);     cin >> N >> M;     for (int i = 1; i <= N; ++i) {       cin >> A[i];       A[i] <<= 1;     }     sort(A + 1, A + N + 1);     for (int j = 1; j <= M; ++j) {       cin >> B[j];       B[j] <<= 1;     }     sort(B + 1, B + M + 1);     for (int i = 1; i <= N; ++i)       for (int j = 1, p; j <= M; ++j) {         p = (A[i] + B[j]) >> 1;         if (!Id[p + 20000]) {           ++Pc;           Id[p + 20000] = Pc;           Pos[Pc] = p;         }       }     for (int a = 1; a <= N; ++a) {       for (int b = 1, p; b <= M; ++b) {         p = (A[a] + B[b]) >> 1;         for (int i = 1; i <= N; ++i) VisA[i] = false;         for (int j = 1; j <= M; ++j) VisB[j] = false;         for (int i = 1; i <= N; ++i)           for (int j = 1; j <= M; ++j) {             if (((A[i] + B[j]) >> 1) == p) {               VisA[i] = true;               VisB[j] = true;             }           }         Cnt = 0;         for (int i = 1; i <= N; ++i)           if (VisA[i]) ++Cnt;         for (int j = 1; j <= M; ++j)           if (VisB[j]) ++Cnt;         for (int i = Pc; i >= 1; --i) Val[i] = 0;         for (int i = 1; i <= N; ++i) {           if (VisA[i]) continue;           for (int j = 1; j <= M; ++j) {             if (j != 1 && B[j] == B[j - 1]) continue;             ++Val[Id[((A[i] + B[j]) >> 1) + 20000]];           }         }         for (int j = 1; j <= M; ++j) {           if (VisB[j]) continue;           for (int i = 1; i <= N; ++i) {             if (i != 1 && A[i] == A[i - 1]) continue;             ++Val[Id[((A[i] + B[j]) >> 1) + 20000]];           }         }         Ans = max(Ans, Cnt);         for (int i = Pc; i >= 1; --i) Ans = max(Ans, Val[i] + Cnt);       }     }     cout << Ans << endl;     return 0;   }   