#include <bits/stdc++.h>
using namespace std;
int deg[2][(int)(7e3 + 50)];
int win[2][(int)(7e3 + 50)];
vector<int> moves[2];
void solve() {
  int n;
  scanf("%d", &n);
  int s1, s2;
  scanf("%d", &s1);
  for (int i = 0; i < s1; i++) {
    int x;
    scanf("%d", &x);
    moves[0].push_back(x);
  }
  scanf("%d", &s2);
  for (int i = 0; i < s2; i++) {
    int x;
    scanf("%d", &x);
    moves[1].push_back(x);
  }
  for (int i = 1; i <= n; i++) {
    deg[0][i] = s1;
    deg[1][i] = s2;
  }
  win[0][0] = 0;
  win[1][0] = 0;
  queue<pair<int, int> > q;
  q.push(make_pair(0, 0));
  q.push(make_pair(1, 0));
  while (!q.empty()) {
    int mv = q.front().first;
    int cur = q.front().second;
    q.pop();
    for (int i = 0; i < moves[1 ^ mv].size(); i++) {
      int to = moves[1 ^ mv][i];
      int nx = (cur - to + n) % n;
      if (nx < 0) nx += n;
      if (win[1 ^ mv][nx]) continue;
      if (win[mv][cur] == 1) {
        deg[1 ^ mv][nx]--;
        if (deg[1 ^ mv][nx] == 0) {
          q.push(make_pair(1 ^ mv, nx));
        }
      } else {
        win[1 ^ mv][nx] = 1;
        q.push(make_pair(1 ^ mv, nx));
      }
    }
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 1; j < n; j++) {
      if (win[i][j] == 1)
        printf("Win ");
      else {
        if (deg[i][j] == 0)
          printf("Lose ");
        else
          printf("Loop ");
      }
    }
    printf("\n");
  }
}
int main() {
  int t = 1;
  for (int i = 1; i <= t; i++) {
    solve();
  }
  return 0;
}
