#include <bits/stdc++.h>
using namespace std;
int n;
int temporal[2];
int matrix[2][(int)1e5 + 7];
int matrix2[2][(int)1e5 + 7];
vector<int> myVect[2];
void getting(int val1, int val2, int val) {
  matrix[val1][val2] = val;
  if (val == -1) {
    for (int i = 0; i < myVect[!val1].size(); i++) {
      if (!matrix[!val1][(val2 + n - myVect[!val1][i]) % n])
        getting(!val1, (val2 + n - myVect[!val1][i]) % n, 1);
    }
  } else {
    for (int i = 0; i < myVect[!val1].size(); i++) {
      if (matrix[!val1][(val2 + n - myVect[!val1][i]) % n]) {
        continue;
      }
      if (matrix2[!val1][(val2 + n - myVect[!val1][i]) % n] <
          myVect[!val1].size()) {
        matrix2[!val1][(val2 + n - myVect[!val1][i]) % n]++;
      }
      if (matrix2[!val1][(val2 + n - myVect[!val1][i]) % n] ==
          myVect[!val1].size()) {
        getting(!val1, (val2 + n - myVect[!val1][i]) % n, -1);
      }
    }
  }
}
int main(int argc, const char* argv[]) {
  cin >> n;
  for (int index = 0; index < 2; index++) {
    cin >> temporal[index];
    for (int i = 0; i < temporal[index]; i++) {
      int tmp;
      cin >> tmp;
      myVect[index].push_back(tmp);
    }
  }
  matrix[1][0] = -1;
  getting(0, 0, -1);
  getting(1, 0, -1);
  for (int index = 0; index < 2; index++) {
    for (int i = 1; i < n; i++) {
      if (matrix[index][i] + 1 == 0) {
        cout << "Lose"
             << " ";
      }
      if (matrix[index][i] + 1 == 1) {
        cout << "Loop"
             << " ";
      }
      if (matrix[index][i] + 1 == 2) {
        cout << "Win"
             << " ";
      }
    }
    cout << endl;
  }
  return 0;
}
