#include <bits/stdc++.h>
using namespace std;
int rest[7070][2];
int ret[7070][2];
bool used[7070][2];
vector<string> ans = {"Loop", "Lose", "Win"};
int main() {
  int n;
  cin >> n;
  vector<int> s[2];
  for (int i = 0; i < 2; i++) {
    int k;
    cin >> k;
    for (int j = 1; j < n; j++) rest[j][i] = k;
    s[i].resize(k);
    for (int j = 0; j < k; j++) cin >> s[i][j];
  }
  set<pair<int, int>> win, lose;
  lose.insert(make_pair(0, 0));
  lose.insert(make_pair(0, 1));
  ret[0][0] = ret[0][1] = 1;
  while (!lose.empty()) {
    for (auto it : lose) {
      if (used[it.first][it.second]) continue;
      used[it.first][it.second] = true;
      int t = it.second ^ 1;
      for (int i = 0; i < s[t].size(); i++) {
        int from = (it.first + n - s[t][i]) % n;
        ret[from][t] = 2;
        win.insert(make_pair(from, t));
      }
    }
    lose.clear();
    for (auto it : win) {
      if (used[it.first][it.second]) continue;
      used[it.first][it.second] = true;
      int t = it.second ^ 1;
      for (int i = 0; i < s[t].size(); i++) {
        int from = (it.first + n - s[t][i]) % n;
        if (ret[from][t] != 0) continue;
        rest[from][t]--;
        if (rest[from][t] == 0) {
          ret[from][t] = 1;
          lose.insert(make_pair(from, t));
        }
      }
    }
    win.clear();
  }
  for (int i = 0; i < 2; i++) {
    bool fst = true;
    for (int j = 1; j < n; j++) {
      cout << (fst ? "" : " ") << ans[ret[j][i]];
      fst = false;
    }
    cout << endl;
  }
  return 0;
}
