#include <bits/stdc++.h>
using namespace std;
std::vector<int> v[2];
int n, m, k1, k2, x;
int dp[7005][2];
int edgesToWonStates[7005][2];
void f(int i, int j) {
  if (dp[i][j] == 0) {
    for (int k = 0; k < v[1 - j].size(); ++k) {
      int from = i - v[1 - j][k];
      if (from < 1) from += n;
      if (from == 1) continue;
      if (dp[from][1 - j] == 1)
        continue;
      else {
        dp[from][1 - j] = 1;
        f(from, 1 - j);
      }
    }
  } else if (dp[i][j] == 1) {
    for (int k = 0; k < v[1 - j].size(); ++k) {
      int from = i - v[1 - j][k];
      if (from < 1) from += n;
      if (from == 1) continue;
      if (dp[from][1 - j] == -1) {
        ++edgesToWonStates[from][1 - j];
        if (edgesToWonStates[from][1 - j] == v[1 - j].size()) {
          dp[from][1 - j] = 0;
          f(from, 1 - j);
        }
      }
    }
  }
}
int main() {
  cin >> n;
  cin >> k1;
  for (int i = 0; i < k1; ++i) {
    cin >> x;
    v[0].push_back(x);
  }
  cin >> k2;
  for (int i = 0; i < k2; ++i) {
    cin >> x;
    v[1].push_back(x);
  }
  memset(dp, -1, sizeof(dp));
  dp[1][0] = dp[1][1] = 0;
  f(1, 0);
  f(1, 1);
  for (int i = 2; i <= n; ++i) {
    if (dp[i][0] == 1)
      cout << "Win ";
    else if (dp[i][0] == 0)
      cout << "Lose ";
    else
      cout << "Loop ";
  }
  cout << endl;
  for (int i = 2; i <= n; ++i) {
    if (dp[i][1] == 1)
      cout << "Win ";
    else if (dp[i][1] == 0)
      cout << "Lose ";
    else
      cout << "Loop ";
  }
  cout << endl;
  return 0;
}
