#include <bits/stdc++.h>
using namespace std;
struct node {
  int ans, nxt, game;
  node(int ans, int nxt, int game) : ans(ans), nxt(nxt), game(game) {}
  node() {}
} tmp;
int k[2];
int r[7005][2];
int dp[7005][2];
int vis[7005][2];
int deg[7005][2];
queue<node> q;
int n;
void bfs() {
  while (!q.empty()) {
    tmp = q.front();
    q.pop();
    vis[tmp.nxt][tmp.game] = 1;
    int game = !tmp.game;
    if (tmp.ans == 2) {
      for (int i = 0; i < k[game]; i++) {
        int nxt = (tmp.nxt - r[i][game] + n) % n;
        if (!vis[nxt][game]) {
          dp[nxt][game] = 1;
          q.push(node(1, nxt, game));
        }
      }
    } else {
      for (int i = 0; i < k[game]; i++) {
        int nxt = (tmp.nxt - r[i][game] + n) % n;
        deg[nxt][game]--;
        if (deg[nxt][game] == 0 && !vis[nxt][game]) {
          dp[nxt][game] = 2;
          q.push(node(2, nxt, game));
        }
      }
    }
  }
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k[0]);
  for (int i = 0; i < k[0]; i++) {
    scanf("%d", &r[i][0]);
  }
  scanf("%d", &k[1]);
  for (int i = 0; i < k[1]; i++) {
    scanf("%d", &r[i][1]);
  }
  for (int i = 0; i < n; i++) {
    deg[i][0] = k[0];
    deg[i][1] = k[1];
  }
  q.push(node(2, 0, 0));
  q.push(node(2, 0, 1));
  bfs();
  for (int k = 0; k < 2; k++) {
    for (int i = 1; i < n; i++) {
      if (!vis[i][k]) {
        printf("Loop ");
      } else if (dp[i][k] == 1) {
        printf("Win ");
      } else {
        printf("Lose ");
      }
    }
    printf("\n");
  }
}
