#include <bits/stdc++.h>
using namespace std;
const int MAXN = 7010;
const int LOOP = 0;
const int WIN = 1;
const int LOSE = 2;
const char *str[] = {"Loop", "Win", "Lose"};
int n, k[2], s[2][MAXN];
int st[2][MAXN] = {0};
bool inq[2][MAXN] = {0};
queue<pair<int, int> > q;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < 2; ++i) {
    scanf("%d", k + i);
    for (int j = 0; j < k[i]; ++j) scanf("%d", s[i] + j);
  }
  st[0][1] = st[1][1] = LOSE;
  for (int i = 0; i < 2; ++i)
    for (int j = 0; j < k[i]; ++j) {
      int x = 1 - s[i][j] + n;
      q.push(pair<int, int>(i, x)), inq[i][x] = true;
    }
  while (!q.empty()) {
    pair<int, int> pr = q.front();
    q.pop();
    int p = pr.first, x = pr.second;
    inq[p][x] = false;
    if (st[p][x]) continue;
    bool flag = false, lose = true;
    for (int i = 0; i < k[p]; ++i) {
      int x2 = x + s[p][i];
      if (x2 > n) x2 -= n;
      if (st[p ^ 1][x2] == LOSE) {
        st[p][x] = WIN, lose = false, flag = true;
        break;
      } else if (st[p ^ 1][x2] != WIN) {
        lose = false;
      }
    }
    if (lose) st[p][x] = LOSE, flag = true;
    if (flag) {
      for (int i = 0; i < k[p ^ 1]; ++i) {
        int x2 = x - s[p ^ 1][i];
        if (x2 < 1) x2 += n;
        if (st[p ^ 1][x2]) continue;
        if (!inq[p ^ 1][x2])
          q.push(pair<int, int>(p ^ 1, x2)), inq[p ^ 1][x2] = true;
      }
    }
  }
  for (int i = 0; i < 2; ++i) {
    for (int j = 2; j <= n; ++j) printf("%s ", str[st[i][j]]);
    puts("");
  }
  return 0;
}
