#include <bits/stdc++.h>
using namespace std;
istream& in = cin;
int n;
vector<int> A[2];
void input() {
  in >> n;
  int k1, k2;
  in >> k1;
  for (int i = 1; i <= k1; ++i) {
    int t;
    in >> t;
    A[0].push_back(t);
  }
  in >> k2;
  for (int i = 1; i <= k2; ++i) {
    int t;
    in >> t;
    A[1].push_back(t);
  }
}
int mark[7010][2];
bool vis[7010][2];
int dep[7010][2];
int main() {
  int TEST_CASE = 1;
  while (TEST_CASE-- > 0) {
    input();
    for (int i = 1; i < n; ++i) {
      dep[i][0] = A[0].size();
      dep[i][1] = A[1].size();
    }
    queue<pair<int, int> > Q;
    Q.push(make_pair(0, 0));
    Q.push(make_pair(0, 1));
    mark[0][0] = mark[0][1] = -1;
    vis[0][0] = vis[0][1] = 1;
    while (!Q.empty()) {
      pair<int, int> u = Q.front();
      Q.pop();
      int f = mark[u.first][u.second];
      for (int v : A[1 - u.second]) {
        v = (u.first - v + n) % n;
        int v2 = 1 - u.second;
        if (vis[v][v2]) {
          continue;
        }
        if (f == -1) {
          mark[v][v2] = 1;
          vis[v][v2] = 1;
          Q.push(make_pair(v, v2));
        } else {
          dep[v][v2]--;
          if (dep[v][v2] == 0) {
            mark[v][v2] = -1;
            vis[v][v2] = 1;
            Q.push(make_pair(v, v2));
          }
        }
      }
    }
    for (int k = 0; k <= 1; ++k) {
      for (int i = 1; i < n; ++i) {
        if (mark[i][k] == -1) {
          printf("Lose ");
        } else if (mark[i][k] == 0) {
          printf("Loop ");
        } else {
          printf("Win ");
        }
      }
      cout << endl;
    }
  }
  return 0;
}
