#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T& num) {
  bool start = false, neg = false;
  char c;
  num = 0;
  while ((c = getchar()) != EOF) {
    if (c == '-')
      start = neg = true;
    else if (c >= '0' && c <= '9') {
      start = true;
      num = num * 10 + c - '0';
    } else if (start)
      break;
  }
  if (neg) num = -num;
}
const int maxn = 7005;
int f[maxn][2];
int in[maxn][2];
int ai[maxn][2], s[2];
int n;
void dfs(int x, int c) {
  for (int i = (1); i <= (s[c ^ 1]); i++) {
    int nxt = (x - 1 - ai[i][c ^ 1] + n) % n + 1;
    if (f[nxt][c ^ 1] >= 0) continue;
    if (f[x][c] > 0) {
      --in[nxt][c ^ 1];
      if (!in[nxt][c ^ 1]) {
        f[nxt][c ^ 1] = 0;
        dfs(nxt, c ^ 1);
      }
    } else
      f[nxt][c ^ 1] = 1, dfs(nxt, c ^ 1);
  }
}
int main() {
  read(n);
  read(s[0]);
  for (int i = (1); i <= (s[0]); i++) read(ai[i][0]);
  read(s[1]);
  for (int i = (1); i <= (s[1]); i++) read(ai[i][1]);
  for (int i = (2); i <= (n); i++)
    for (int j = (0); j <= (1); j++) in[i][j] = s[j];
  memset(f, -1, sizeof(f));
  f[1][0] = f[1][1] = 0;
  dfs(1, 0);
  dfs(1, 1);
  for (int j = (0); j <= (1); j++) {
    for (int i = (2); i <= (n); i++) {
      if (f[i][j] > 0)
        printf("Win ");
      else if (!f[i][j])
        printf("Lose ");
      else
        printf("Loop ");
    }
    putchar('\n');
  }
  return 0;
}
