func_code_string: #include <bits/stdc++.h>   using namespace std;   void display(vector<int> v1) {     for (long long int i = 0; i < v1.size(); i++) {       cout << v1[i] <<    ;     }     cout << endl;   }   long long int dx[8] = {0, 1, 0, -1, 1, 1, -1, -1};   long long int dy[8] = {1, 0, -1, 0, 1, -1, 1, -1};   int n, dp[9000][2];   vector<int> v1[2];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cin >> n;     memset(dp, -1, sizeof(dp));     for (int p = 0, k; p < 2; p += 1) {       cin >> k;       v1[p].resize(k);       for (long long int i = 0; i < k; i++) {         cin >> v1[p][i];       }     }     dp[1][0] = 0;     dp[1][1] = 0;     bool flag = true;     while (flag) {       flag = false;       for (int i = n; i >= 2; i--)         for (int p = 0; p < 2; p++)           if (dp[i][p] == -1) {             bool can = false;             for (int x : v1[p]) {               int nxt = (i + x) % n + n * !bool((i + x) % n);               if (!dp[nxt][p ^ 1]) {                 dp[i][p] = 1;                 flag = true;                 can = true;                 break;               } else if (dp[nxt][p ^ 1] == -1)                 can = true;             }             if (!can) dp[i][p] = 0, flag = true;           }     }     for (int p = 0; p < 2; p++) {       for (int i = 2; i <= n; i++) {         if (dp[i][p] == -1) {           cout <<  Loop  ;         } else if (dp[i][p] == 1) {           cout <<  Win  ;         } else {           cout <<  Lose  ;         }       }       cout << endl;     }     return 0;   }   