func_code_string: #include <bits/stdc++.h>   using namespace std;   int Res[2][7010], N[2][7010], Loss[2][7010];   int n, m, k, OpN[2];   queue<pair<int, int> > Q;   int main() {     srand((unsigned)time(0));     ios::sync_with_stdio(false);     cin.tie(0);     cin >> n;     cin.get();     for (int i = 0; i < 2; i++) {       cin >> m;       OpN[i] = m;       for (int j = 0; j < m; j++) {         cin >> k;         N[i][j] = k;         Res[i][n + 1 - k] = 1;         Q.push({i, n + 1 - k});       }     }     pair<int, int>* P;     while (!Q.empty()) {       P = &Q.front();       int k = !P->first, i = P->second;       Q.pop();       for (int j = 0; j < OpN[k]; j++) {         int h = N[k][j], l = ((i - h < 1) ? (i - h + n) : (i - h));         if (Res[k][l] == 0) {           Loss[k][l]++;         }       }       for (int i = 2; i < n + 1; i++) {         if (Res[k][i] == 0) {           if (Loss[k][i] == OpN[k]) {             Res[k][i] = 2;             for (int t = 0; t < OpN[!k]; t++) {               int h = N[!k][t], l = ((i - h < 1) ? (i - h + n) : (i - h));               if (Res[!k][l] == 0) {                 Res[!k][l] = 1;                 Q.push({!k, l});               }             }           }         }       }     }     string Out[3] = { Loop ,  Win ,  Lose };     for (int k = 0; k < 2; k++) {       for (int i = 2; i < n + 1; i++) {         cout << Out[Res[k][i]].c_str() <<    ;       }       cout <<   n ;     }   }   