#include <bits/stdc++.h>
using namespace std;
void printAns(int a) {
  if (a == 1)
    printf("Win ");
  else if (a == -1)
    printf("Lose ");
  else
    printf("Loop ");
}
int N;
vector<int> rMove;
vector<int> mMove;
int rStat[7003];
int mStat[7003];
int rCnt[7003];
int mCnt[7003];
int main() {
  scanf("%d", &N);
  int K1;
  scanf("%d", &K1);
  for (int zz = 0; zz < (K1); zz++) {
    int s;
    scanf("%d", &s);
    rMove.push_back(s);
  }
  fill(rCnt, rCnt + N, K1);
  int K2;
  scanf("%d", &K2);
  for (int zz = 0; zz < (K2); zz++) {
    int s;
    scanf("%d", &s);
    mMove.push_back(s);
  }
  fill(mCnt, mCnt + N, K2);
  vector<int> rLose;
  rLose.push_back(0);
  vector<int> mLose;
  mLose.push_back(0);
  while (rLose.empty() == false || mLose.empty() == false) {
    vector<int> rLose2;
    for (int x : rLose) {
      rStat[x] = -1;
      for (int s : mMove) {
        int y = (x - s + N) % N;
        if (mStat[y]) continue;
        mStat[y] = 1;
        for (int ss : rMove) {
          int z = (y - ss + N) % N;
          rCnt[z]--;
          if (rCnt[z] == 0 && rStat[z] == 0) rLose2.push_back(z);
        }
      }
    }
    rLose.swap(rLose2);
    vector<int> mLose2;
    for (int x : mLose) {
      mStat[x] = -1;
      for (int s : rMove) {
        int y = (x - s + N) % N;
        if (rStat[y]) continue;
        rStat[y] = 1;
        for (int ss : mMove) {
          int z = (y - ss + N) % N;
          mCnt[z]--;
          if (mCnt[z] == 0 && mStat[z] == 0) mLose2.push_back(z);
        }
      }
    }
    mLose.swap(mLose2);
  }
  for (int i = 1; i < N; i++) printAns(rStat[i]);
  puts("");
  for (int i = 1; i < N; i++) printAns(mStat[i]);
  puts("");
  return 0;
}
