#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1e4;
int ans[2][MAX_N], a[2][MAX_N], lose[2][MAX_N];
int n, k[2];
struct S {
  int num, player, win;
  S() {}
  S(int num, int player, int win) : num(num), player(player), win(win) {}
};
S q[MAX_N * 4];
inline int sub(int a, int b, int n) {
  a -= b;
  if (a < 0) a += n;
  return a;
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k[0]);
  for (int i = 0; (i) < (k[0]); ++i) scanf("%d", &a[0][i]);
  scanf("%d", &k[1]);
  for (int i = 0; (i) < (k[1]); ++i) scanf("%d", &a[1][i]);
  int head = 0, tail = 0;
  q[tail++] = S(0, 0, 0);
  q[tail++] = S(0, 1, 0);
  for (int i = 0; (i) < (2); ++i)
    for (int j = 0; (j) < (n); ++j) ans[i][j] = -1;
  ans[0][0] = 0, ans[1][0] = 0;
  while (tail > head) {
    S np = q[head++];
    int op = np.player ^ 1;
    if (np.win == 0) {
      for (int j = 0; (j) < (k[op]); ++j) {
        int num2 = sub(np.num, a[op][j], n);
        if (ans[op][num2] == -1) {
          ans[op][num2] = 1;
          q[tail++] = S(num2, op, 1);
        }
      }
    } else {
      for (int j = 0; (j) < (k[op]); ++j) {
        int num2 = sub(np.num, a[op][j], n);
        lose[op][num2]++;
        if (lose[op][num2] == k[op]) {
          ans[op][num2] = 0;
          q[tail++] = S(num2, op, 0);
        }
      }
    }
  }
  for (int i = 0; (i) < (2); ++i) {
    for (int j = (1); (j) < (n); ++j) {
      if (ans[i][j] == 1) printf("Win ");
      if (ans[i][j] == 0) printf("Lose ");
      if (ans[i][j] == -1) printf("Loop ");
    }
    puts("");
  }
  return 0;
}
