#include <bits/stdc++.h>
const int inf = 2000000000, mod = 1000000007;
using namespace std;
int step(int x, int n) { return x < n ? (x >= 0 ? x : n + x) : x - n; }
int W[2][7777], L[2][7777], res[2][7777], s[2][7777], k[2], n;
int main() {
  scanf("%d", &(n));
  for (int((i)) = (0), _n_ = ((2) - 1); ((i)) <= _n_; ++((i))) {
    scanf("%d", &(k[i]));
    for (int((j)) = (0), _n_ = ((k[i]) - 1); ((j)) <= _n_; ++((j)))
      scanf("%d", &(s[i][j]));
    for (int((j)) = (0), _n_ = ((n)-1); ((j)) <= _n_; ++((j)))
      W[i][j] = L[i][j] = res[i][j] = 0;
  }
  W[0][0] = k[0];
  W[1][0] = k[1];
  bool change = 1;
  while (change) {
    change = 0;
    for (int((i)) = (0), _n_ = ((2) - 1); ((i)) <= _n_; ++((i))) {
      for (int((j)) = (0), _n_ = ((n)-1); ((j)) <= _n_; ++((j))) {
        if (res[i][j] != 0) continue;
        if (W[i][j] == k[i]) {
          res[i][j] = 1;
          change = 1;
          for (int((q)) = (0), _n_ = ((k[step(i + 1, 2)]) - 1); ((q)) <= _n_;
               ++((q))) {
            ++L[step(i + 1, 2)][step(j - s[step(i + 1, 2)][q], n)];
          }
        } else {
          if (L[i][j] > 0) {
            res[i][j] = 2;
            change = 1;
            for (int((q)) = (0), _n_ = ((k[step(i + 1, 2)]) - 1); ((q)) <= _n_;
                 ++((q))) {
              ++W[step(i + 1, 2)][step(j - s[step(i + 1, 2)][q], n)];
            }
          }
        }
      }
    }
  }
  for (int((i)) = (0), _n_ = ((2) - 1); ((i)) <= _n_; ++((i))) {
    for (int(j) = (1), _n_ = (n - 1); (j) <= _n_; ++(j)) {
      switch (res[i][j]) {
        case 1:
          cout << "Lose ";
          break;
        case 2:
          cout << "Win ";
          break;
        case 0:
          cout << "Loop ";
          break;
        default:
          cout << "WTF? ";
      }
    }
    cout << "\n";
  }
  return 0;
}
