#include <bits/stdc++.h>
int main() {
  std::ios::sync_with_stdio(false);
  int N;
  std::cin >> N;
  std::array<int, 2> K;
  std::array<std::vector<int>, 2> S;
  for (int i = 0; i < 2; ++i) {
    std::cin >> K[i];
    S[i].resize(K[i]);
    for (int j = 0; j < K[i]; ++j) {
      std::cin >> S[i][j];
    }
  }
  enum result_t { LOOP = 0, WIN = 1, LOSE = 2 };
  std::array<std::vector<result_t>, 2> result = {
      {std::vector<result_t>(N, LOOP), std::vector<result_t>(N, LOOP)}};
  std::array<std::vector<int>, 2> cnt = {
      {std::vector<int>(N, K[0]), std::vector<int>(N, K[1])}};
  std::queue<std::pair<bool, int> > que;
  que.emplace(false, 0);
  que.emplace(true, 0);
  while (!que.empty()) {
    bool isPlayer;
    int here;
    std::tie(isPlayer, here) = que.front();
    que.pop();
    result[isPlayer][here] = LOSE;
    for (int i : S[not isPlayer]) {
      int there = (here - i + N) % N;
      if (there == 0) continue;
      if (result[not isPlayer][there] == WIN) continue;
      result[not isPlayer][there] = WIN;
      for (int j : S[isPlayer]) {
        int therethere = (there - j + N) % N;
        if (therethere == 0) continue;
        if (not --cnt[isPlayer][therethere]) {
          que.emplace(isPlayer, therethere);
        }
      }
    }
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < N - 1; j++) {
      if (j) std::cout << " ";
      std::cout << ((result[i][j + 1] == WIN)
                        ? "Win"
                        : ((result[i][j + 1] == LOSE) ? "Lose" : "Loop"));
    }
    std::cout << '\n';
  }
  return 0;
}
