#include <bits/stdc++.h>
using namespace std;
int dp[7005][2];
int cnt[7005][2];
vector<int> a[2];
int n;
int main() {
  cin >> n;
  int x;
  cin >> x;
  for (int i = 0; i < x; i++) {
    int e;
    cin >> e;
    a[0].push_back(e);
  }
  cin >> x;
  for (int i = 0; i < x; i++) {
    int e;
    cin >> e;
    a[1].push_back(e);
  }
  memset(dp, -1, sizeof(dp));
  dp[1][0] = 1;
  dp[1][1] = 0;
  queue<pair<int, int> > que;
  que.push(make_pair(1, 0));
  que.push(make_pair(1, 1));
  while (!que.empty()) {
    pair<int, int> p = que.front();
    que.pop();
    for (int i = 0; i < a[1 - p.second].size(); i++) {
      int num = (p.first - a[1 - p.second][i]);
      if (num <= 0) num += n;
      if (num > n) num -= n;
      if (num == 1) continue;
      cnt[num][1 - p.second]++;
      if (dp[p.first][p.second] == 1 - p.second) {
        if (dp[num][1 - p.second] == -1) {
          dp[num][1 - p.second] = 1 - p.second;
          que.push(make_pair(num, 1 - p.second));
        }
      } else {
        if (cnt[num][1 - p.second] == a[1 - p.second].size() &&
            dp[num][1 - p.second] == -1) {
          dp[num][1 - p.second] = p.second;
          que.push(make_pair(num, 1 - p.second));
        }
      }
    }
  }
  for (int i = 2; i <= n; i++) {
    if (dp[i][0] == 0)
      cout << "Win ";
    else if (dp[i][0] == 1)
      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;
}
