func_code_string: #include <bits/stdc++.h>   using namespace std;   const int Win = 3, Loop = 2, Lose = 1;   int n, dp[7001][3], ne[3], a[7001][3], k[3], sum[7001][3];   bool b[7001][3];   inline int max(int x, int y) { return x > y ? x : y; }   void dfs(int x, int y) {     if (b[x][y]) return;     b[x][y] = 1;     int t = ne[y];     for (int i = 1; i <= k[t]; i++) {       int xt = x - a[i][t];       if (xt <= 0) xt += n;       if (xt == 1) continue;       dp[xt][t] = max(dp[xt][t], 4 - dp[x][y]);       if (++sum[xt][t] == k[t] || dp[xt][t] == Win) dfs(xt, t);     }   }   int main() {     scanf( %d , &n);     scanf( %d , &k[1]);     for (int i = 1; i <= k[1]; i++) scanf( %d , &a[i][1]);     scanf( %d , &k[2]);     for (int i = 1; i <= k[2]; i++) scanf( %d , &a[i][2]);     dp[1][1] = dp[1][2] = Lose;     ne[1] = 2;     ne[2] = 1;     dfs(1, 1);     dfs(1, 2);     for (int j = 1; j <= 2; j++) {       for (int i = 2; i <= n; i++) {         if (!b[i][j]) dp[i][j] = Loop;         printf(dp[i][j] == Win ?  Win   : dp[i][j] == Loop ?  Loop   :  Lose  );       }       printf(  n );     }   }   