#include <bits/stdc++.h>
using namespace std;
enum { LOOP = -1, WIN = 0, LOSE = 1 };
const int MAX = 7e3 + 5;
vector<int> jumps[2];
int k[2], ans[2][MAX], wins[2][MAX];
int n;
int main() {
  scanf("%d", &n);
  for (int i = int(0); i < int(2); i++) {
    scanf("%d", k + i);
    jumps[i].resize(k[i]);
    for (int j = int(0); j < int(k[i]); j++) {
      scanf("%d", &jumps[i][j]);
    }
  }
  memset(ans, LOOP, sizeof ans);
  ans[0][0] = ans[1][0] = LOSE;
  queue<pair<int, int> > q;
  q.emplace(0, 0);
  q.emplace(1, 0);
  while (!q.empty()) {
    int player, planet;
    tie(player, planet) = q.front();
    q.pop();
    for (auto &each : jumps[player ^ 1]) {
      int prev_planet = (planet - each) % n;
      if (0 > prev_planet) {
        prev_planet += n;
      }
      if (ans[player ^ 1][prev_planet] == LOOP) {
        if (ans[player][planet] == LOSE) {
          ans[player ^ 1][prev_planet] = WIN;
          q.emplace(player ^ 1, prev_planet);
        } else {
          wins[player ^ 1][prev_planet]++;
          if (wins[player ^ 1][prev_planet] == k[player ^ 1]) {
            ans[player ^ 1][prev_planet] = LOSE;
            q.emplace(player ^ 1, prev_planet);
          }
        }
      }
    }
  }
  vector<string> words{"Loop", "Win", "Lose"};
  for (int i = int(0); i < int(2); i++) {
    for (int j = int(1); j < int(n); j++) {
      printf("%s ", words[ans[i][j] + 1].c_str());
    }
    printf("\n");
  }
  return 0;
}
