#include <bits/stdc++.h>
const double PI = acos(-1.0);
using namespace std;
template <typename T1, typename T2>
istream& operator>>(istream& is, pair<T1, T2>& v) {
  is >> v.first >> v.second;
  return is;
}
template <typename T1, typename T2>
ostream& operator<<(ostream& os, pair<T1, T2>& v) {
  os << "{";
  os << v.first << ", " << v.second;
  os << "}";
  return os;
}
template <typename T>
istream& operator>>(istream& is, vector<T>& v) {
  for (int i = 0; i < v.size(); ++i) {
    is >> v[i];
  }
  return is;
}
template <typename T>
ostream& operator<<(ostream& os, vector<T>& v) {
  os << "[";
  for (int i = 0; i < v.size(); ++i) {
    os << v[i];
    if (i != v.size() - 1) os << " ";
  }
  os << "]" << endl;
  return os;
}
template <typename T>
ostream& operator<<(ostream& os, deque<T>& v) {
  os << "[";
  for (int i = 0; i < v.size(); ++i) {
    os << v[i];
    if (i != v.size() - 1) os << " ";
  }
  os << "]" << endl;
  return os;
}
template <typename T>
ostream& operator<<(ostream& os, set<T>& v) {
  os << "[";
  int i = 0;
  for (auto a : v) {
    os << a;
    if (i != v.size() - 1) os << " ";
  }
  os << "]" << endl;
  return os;
}
vector<int> player[2];
vector<int> step[2];
vector<int> was[2];
vector<int> wasAdded[2];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  player[0].resize(n, 2);
  player[1].resize(n, 2);
  int k;
  cin >> k;
  player[0][0] = 0;
  player[1][0] = 0;
  for (int i = 0; i < k; ++i) {
    int x;
    cin >> x;
    step[0].push_back(x);
  }
  was[0].resize(n, k);
  cin >> k;
  for (int i = 0; i < k; ++i) {
    int x;
    cin >> x;
    step[1].push_back(x);
  }
  was[1].resize(n, k);
  wasAdded[0].resize(n, 0);
  wasAdded[1].resize(n, 0);
  queue<pair<int, int> > q;
  q.push({0, 0});
  q.push({1, 0});
  wasAdded[0][0] = wasAdded[1][0] = 1;
  while (!q.empty()) {
    pair<int, int> d = q.front();
    q.pop();
    for (auto a : step[!d.first]) {
      int dd = (n + d.second - a) % n;
      if (wasAdded[!d.first][dd]) continue;
      if (player[d.first][d.second] == 0) {
        player[!d.first][dd] = 1;
        q.push({!d.first, dd});
        wasAdded[!d.first][dd] = 1;
      } else {
        --was[!d.first][dd];
        if (was[!d.first][dd] == 0 && player[!d.first][dd] == 2) {
          player[!d.first][dd] = 0;
          q.push({!d.first, dd});
          wasAdded[!d.first][dd] = 1;
        }
      }
    }
  }
  for (int i = 1; i < n; ++i) {
    int dd = player[0][i];
    if (dd == 0) {
      cout << "Lose ";
    } else if (dd == 1) {
      cout << "Win ";
    } else {
      cout << "Loop ";
    }
  }
  cout << endl;
  for (int i = 1; i < n; ++i) {
    int dd = player[1][i];
    if (dd == 0) {
      cout << "Lose ";
    } else if (dd == 1) {
      cout << "Win ";
    } else {
      cout << "Loop ";
    }
  }
  cout << endl;
  return 0;
}
