#include <bits/stdc++.h>
using namespace std;
const int N = 7e3 + 5;
int n, kA, kB, a[N], b[N];
int res[N * 2], out[N * 2];
queue<int> q;
void childWin(int x) {
  out[x]--;
  if (!out[x]) {
    res[x] = 0;
    q.push(x);
  }
}
void childLose(int x) {
  res[x] = 1;
  q.push(x);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  cin >> kA;
  for (int i = 1; i <= kA; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < n; i++) {
    out[i] += kA;
  }
  cin >> kB;
  for (int i = 1; i <= kB; i++) {
    cin >> b[i];
  }
  for (int i = 0; i < n; i++) {
    out[n + i] += kB;
  }
  memset(res, -1, sizeof(res));
  res[0] = 0;
  q.push(0);
  res[n] = 0;
  q.push(n);
  while (!q.empty()) {
    int now = q.front();
    q.pop();
    if (res[now]) {
      if (now < n) {
        for (int i = 1; i <= kB; i++) {
          int nxt = n + (now - b[i] + n) % n;
          if (res[nxt] == -1) {
            childWin(nxt);
          }
        }
      } else {
        for (int i = 1; i <= kA; i++) {
          int nxt = (now - a[i] + n) % n;
          if (res[nxt] == -1) {
            childWin(nxt);
          }
        }
      }
    } else {
      if (now < n) {
        for (int i = 1; i <= kB; i++) {
          int nxt = n + (now - b[i] + n) % n;
          if (res[nxt] == -1) {
            childLose(nxt);
          }
        }
      } else {
        for (int i = 1; i <= kA; i++) {
          int nxt = (now - a[i] + n) % n;
          if (res[nxt] == -1) {
            childLose(nxt);
          }
        }
      }
    }
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 1; j < n; j++) {
      if (res[i * n + j] == -1) {
        cout << "Loop";
      } else if (!res[i * n + j]) {
        cout << "Lose";
      } else {
        cout << "Win";
      }
      cout << (j == n - 1 ? "\n" : " ");
    }
  }
}
