#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<vector<int> > g;
vector<vector<bool> > visited;
vector<int> path;
vector<bool> on_path;
int chip;
bool draw = false;
bool dfs(int node, int state) {
  visited[node][state] = true;
  on_path[node] = true;
  path.push_back(node);
  for (auto neighbor : g[node]) {
    if (g[neighbor].size() == 0 && state == 0) {
      path.push_back(neighbor);
      return true;
    }
    if (on_path[neighbor]) {
      draw = true;
    }
    if (!visited[neighbor][1 - state]) {
      if (dfs(neighbor, 1 - state)) {
        return true;
      }
    }
  }
  on_path[node] = false;
  path.pop_back();
  return false;
}
int main(int argc, char* argv[]) {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  g.resize(n + 1);
  visited.resize(n + 1);
  on_path.resize(n + 1);
  for (int i = 1; i <= n; ++i) {
    visited[i].push_back(false);
    visited[i].push_back(false);
  }
  for (int i = 1; i <= n; ++i) {
    int a;
    cin >> a;
    g[i].resize(a);
    int b;
    for (int j = 0; j < a; ++j) {
      cin >> b;
      g[i][j] = b;
    }
  }
  cin >> chip;
  if (dfs(chip, 0)) {
    cout << "Win" << endl;
    for (int i = 0; i < path.size(); ++i) {
      if (i) {
        cout << " ";
      }
      cout << path[i];
    }
    cout << endl;
  } else {
    if (draw) {
      cout << "Draw" << endl;
    } else {
      cout << "Lose" << endl;
    }
  }
  return 0;
}
