#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> av, bv;
template <class F>
void reachable(int i, F f) {
  bool bit = i & 1;
  i >>= 1;
  if (bit) {
    for (auto& x : av) {
      int y = i - x;
      if (y < 0) y += N;
      f(2 * y);
    }
  } else {
    for (auto& x : bv) {
      int y = i - x;
      if (y < 0) y += N;
      f(2 * y + 1);
    }
  }
}
int main() {
  cin.sync_with_stdio(false);
  cin.exceptions(cin.failbit);
  cin >> N;
  int a, b;
  cin >> a;
  av.resize(a);
  for (int i = 0; i < (a); ++i) cin >> av[i];
  cin >> b;
  bv.resize(b);
  for (int i = 0; i < (b); ++i) cin >> bv[i];
  vector<int> rem(2 * N), losing(2 * N), winning(2 * N);
  queue<int> q;
  for (int i = 0; i < (N); ++i) rem[i * 2] = a;
  for (int i = 0; i < (N); ++i) rem[i * 2 + 1] = b;
  rem[0] = rem[1] = 0;
  q.push(0);
  q.push(1);
  while (!q.empty()) {
    int x = q.front();
    q.pop();
    assert(!winning[x]);
    losing[x] = 1;
    reachable(x, [&](int y) {
      if (y != 0 && y != 1) {
        assert(!losing[y]);
        if (++winning[y] == 1) {
          reachable(y, [&](int z) {
            if (--rem[z] == 0) q.push(z);
          });
        }
      }
    });
  }
  auto st = [&](int x) {
    if (winning[x]) return "Win";
    if (losing[x]) return "Lose";
    return "Loop";
  };
  for (int i = 1; i < (N); ++i) cout << st(2 * i) << ' ';
  cout << endl;
  for (int i = 1; i < (N); ++i) cout << st(2 * i + 1) << ' ';
  cout << endl;
  exit(0);
}
