#include <bits/stdc++.h>
using namespace std;
long long MOD = 1e9 + 7;
long long INF = LLONG_MAX / 4;
vector<string> &split(const std::string &s, char delim, vector<string> &e) {
  stringstream ss(s);
  string item;
  while (getline(ss, item, delim)) e.push_back(item);
  return e;
}
long long Pow(long long a, long long b, long long Mo) {
  long long ans = 1;
  for (; b; b >>= 1, a = a * a % Mo)
    if (b & 1) ans = ans * a % Mo;
  return ans;
}
vector<int> Zfunc(string &s) {
  int n = s.length();
  vector<int> z(n, 0);
  for (int i = 1, l = 0, r = 0; i < n; i++) {
    if (i <= r) z[i] = min(z[i - l], r - i + 1);
    while (i + z[i] < n && s[i + z[i]] == s[z[i]]) z[i]++;
    if (r < i + z[i] - 1) l = i, r = i + z[i] - 1;
  }
  return z;
}
int WIN = 0, LOSE = 1, LOOP = 2;
long long c1, c2;
long long n;
std::vector<long long> mv[2];
std::vector<std::vector<long long> > v, countwintype;
void setvalue(int index, int p, int setit, int forceit) {
  long long &ans = v[index][p];
  if (ans != -1 && forceit == 0) {
    return;
  }
  ans = setit;
  if (forceit == 2) return;
  if (ans == LOSE)
    for (int i = 0; i < (int)mv[!p].size(); ++i) {
      setvalue((index - mv[!p][i] + n) % n, !p, WIN, 0);
    }
  if (ans == WIN)
    for (int i = 0; i < (int)mv[!p].size(); ++i)
      if (!(--countwintype[(index - mv[!p][i] + n) % n][!p])) {
        setvalue((index - mv[!p][i] + n) % n, !p, LOSE, 0);
      }
}
int main(int argc, char const *argv[]) {
  std::ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  v = std::vector<std::vector<long long> >(n, std::vector<long long>(2, -1));
  countwintype =
      std::vector<std::vector<long long> >(n, std::vector<long long>(2, -1));
  cin >> c1;
  mv[0] = std::vector<long long>(c1);
  for (int i = 0; i < c1; ++i) {
    cin >> mv[0][i];
  }
  cin >> c2;
  mv[1] = std::vector<long long>(c2);
  for (int i = 0; i < c2; ++i) {
    cin >> mv[1][i];
  }
  for (int i = 1; i < n; ++i) {
    countwintype[i][0] = c1;
    countwintype[i][1] = c2;
  }
  v[0][0] = v[0][1] = LOSE;
  for (int i = 0; i < c2; ++i) {
    setvalue((n - mv[1][i]) % n, 1, WIN, 0);
  }
  for (int i = 0; i < c1; ++i) {
    setvalue((n - mv[0][i]) % n, 0, WIN, 0);
  }
  for (int i = 1; i < n; ++i) {
    int a = v[i][0];
    if (a == WIN)
      cout << "Win";
    else if (a == LOSE)
      cout << "Lose";
    else
      cout << "Loop";
    cout << " ";
  }
  cout << '\n';
  for (int i = 1; i < n; ++i) {
    int a = v[i][1];
    if (a == WIN)
      cout << "Win";
    else if (a == LOSE)
      cout << "Lose";
    else
      cout << "Loop";
    cout << " ";
  }
  cout << '\n';
  return 0;
}
