#include <bits/stdc++.h>
using namespace std;
int Res[2][7010], N[2][7010], Loss[2][7010];
int n, m, k, OpN[2];
queue<pair<int, int> > Q;
int main() {
  srand((unsigned)time(0));
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  cin.get();
  for (int i = 0; i < 2; i++) {
    cin >> m;
    OpN[i] = m;
    for (int j = 0; j < m; j++) {
      cin >> k;
      N[i][j] = k;
      Res[i][n + 1 - k] = 1;
      Q.push({i, n + 1 - k});
    }
  }
  pair<int, int>* P;
  while (!Q.empty()) {
    P = &Q.front();
    int k = !P->first, i = P->second;
    Q.pop();
    for (int j = 0; j < OpN[k]; j++) {
      int h = N[k][j], l = ((i - h < 1) ? (i - h + n) : (i - h));
      if (Res[k][l] == 0) {
        Loss[k][l]++;
      }
    }
    for (int i = 2; i < n + 1; i++) {
      if (Res[k][i] == 0) {
        if (Loss[k][i] == OpN[k]) {
          Res[k][i] = 2;
          for (int t = 0; t < OpN[!k]; t++) {
            int h = N[!k][t], l = ((i - h < 1) ? (i - h + n) : (i - h));
            if (Res[!k][l] == 0) {
              Res[!k][l] = 1;
              Q.push({!k, l});
            }
          }
        }
      }
    }
  }
  string Out[3] = {"Loop", "Win", "Lose"};
  for (int k = 0; k < 2; k++) {
    for (int i = 2; i < n + 1; i++) {
      cout << Out[Res[k][i]].c_str() << ' ';
    }
    cout << '\n';
  }
}
