#include <bits/stdc++.h>
using namespace std;
const int N = 7010, M = 2;
int n, k1, k2;
int s1[N], s2[N];
int f[N][M];
int vis[N][M];
int cnt[N][M];
int main() {
  scanf("%d", &n);
  scanf("%d", &k1);
  for (int i = 0; i < k1; ++i) scanf("%d", s1 + i);
  scanf("%d", &k2);
  for (int i = 0; i < k2; ++i) scanf("%d", s2 + i);
  f[0][0] = 0;
  f[0][1] = 0;
  vis[0][0] = 1;
  vis[0][1] = 1;
  queue<pair<int, int> > q;
  q.push(make_pair(0, 0));
  q.push(make_pair(0, 1));
  while (q.size()) {
    auto t = q.front();
    q.pop();
    if (t.second == 0) {
      for (int i = 0; i < k2; ++i) {
        int xx = (t.first + n - s2[i]) % n;
        if (vis[xx][1]) continue;
        vis[xx][1] = 1;
        f[xx][1] = 1;
        for (int j = 0; j < k1; ++j) {
          int xxx = (xx + n - s1[j]) % n;
          if (vis[xxx][0]) continue;
          cnt[xxx][0]++;
          if (cnt[xxx][0] == k1) {
            vis[xxx][0] = 1;
            f[xxx][0] = 0;
            q.push(make_pair(xxx, 0));
          }
        }
      }
    } else {
      for (int i = 0; i < k1; ++i) {
        int xx = (t.first + n - s1[i]) % n;
        if (vis[xx][0]) continue;
        vis[xx][0] = 1;
        f[xx][0] = 1;
        for (int j = 0; j < k2; ++j) {
          int xxx = (xx + n - s2[j]) % n;
          if (vis[xxx][1]) continue;
          cnt[xxx][1]++;
          if (cnt[xxx][1] == k2) {
            vis[xxx][1] = 1;
            f[xxx][1] = 0;
            q.push(make_pair(xxx, 1));
          }
        }
      }
    }
  }
  for (int j = 0; j < 2; ++j) {
    for (int i = 1; i < n; ++i) {
      printf("%s%c", !vis[i][j] ? "Loop" : (f[i][j] == 1 ? "Win" : "Lose"),
             " \n"[i == n - 1]);
    }
  }
  return 0;
}
