func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int n;     cin >> n;     vector<vector<int>> moves(2, vector<int>());     for (int i = 0; i < 2; ++i) {       int k;       cin >> k;       for (int j = 0; j < k; ++j) {         int m;         cin >> m;         moves[i].push_back(m);       }     }     queue<std::pair<int, int>> q;     q.push({0, 0});     q.push({0, 1});     vector<vector<int>> res(n, vector<int>(2, -1));     res[0][0] = 0;     res[0][1] = 0;     vector<vector<int>> counter(n, vector<int>(2, 0));     while (!q.empty()) {       std::pair<int, int> v = q.front();       q.pop();       int pos = v.first;       int player = v.second;       if (res[pos][player] == 0) {         for (const auto& m : moves[1 ^ player]) {           int k = pos - m;           if (k < 0) {             k += n;           }           if (res[k][1 ^ player] == -1) {             res[k][1 ^ player] = 1;             q.push({k, 1 ^ player});           }         }       } else {         for (const auto& m : moves[1 ^ player]) {           int k = pos - m;           if (k < 0) {             k += n;           }           if (res[k][1 ^ player] == -1) {             ++counter[k][1 ^ player];             if (counter[k][1 ^ player] == (int)moves[1 ^ player].size()) {               res[k][1 ^ player] = 0;               q.push({k, 1 ^ player});             }           }         }       }     }     for (int i = 0; i < 2; ++i) {       for (int j = 1; j < n; ++j) {         if (res[j][i] == 0) {           cout <<  Lose  ;         } else if (res[j][i] == 1) {           cout <<  Win  ;         } else {           cout <<  Loop  ;         }       }       cout << endl;     }     return 0;   }   