#include <bits/stdc++.h>
using namespace std;
const int LOSE = 1, WIN = 2, LOOP = 0;
int n, k1, k2;
int s1[10010], s2[10010];
int cot1[10010], cot2[10010];
int ans1[10010], ans2[10010];
void bfs() {
  queue<pair<int, int> > Q;
  ans1[0] = ans2[0] = LOSE;
  Q.push(make_pair(1, 0));
  Q.push(make_pair(2, 0));
  while (!Q.empty()) {
    int id = Q.front().first, pos = Q.front().second;
    Q.pop();
    if (id == 1) {
      for (int i = 0; i < k2; i++) {
        int t = (pos - s2[i] + n) % n;
        if (ans1[pos] == LOSE && !ans2[t])
          ans2[t] = WIN, Q.push(make_pair(2, t));
        else if (ans1[pos] == WIN && --cot2[t] == 0 && !ans2[t])
          ans2[t] = LOSE, Q.push(make_pair(2, t));
      }
    } else if (id == 2) {
      for (int i = 0; i < k1; i++) {
        int t = (pos - s1[i] + n) % n;
        if (ans2[pos] == LOSE && !ans1[t])
          ans1[t] = WIN, Q.push(make_pair(1, t));
        else if (ans2[pos] == WIN && --cot1[t] == 0 && !ans1[t])
          ans1[t] = LOSE, Q.push(make_pair(1, t));
      }
    }
  }
}
int main() {
  while (~scanf("%d", &n)) {
    memset(ans1, 0, sizeof(ans1));
    memset(ans2, 0, sizeof(ans2));
    scanf("%d", &k1);
    for (int i = 0; i < k1; i++) scanf("%d", &s1[i]);
    scanf("%d", &k2);
    for (int i = 0; i < k2; i++) scanf("%d", &s2[i]);
    for (int i = 1; i < n; i++) cot1[i] = k1, cot2[i] = k2;
    bfs();
    for (int i = 1; i < n; i++) {
      if (ans1[i] == WIN)
        printf("Win ");
      else if (ans1[i] == LOSE)
        printf("Lose ");
      else if (ans1[i] == LOOP)
        printf("Loop ");
    }
    printf("\n");
    for (int i = 1; i < n; i++) {
      if (ans2[i] == WIN)
        printf("Win ");
      else if (ans2[i] == LOSE)
        printf("Lose ");
      else if (ans2[i] == LOOP)
        printf("Loop ");
    }
    printf("\n");
  }
  return 0;
}
