#include <bits/stdc++.h>
using namespace std;
int n, m, s;
vector<vector<int>> adj, dp;
vector<vector<bool>> vis;
int dfs(int pos, int pt) {
  vis[pos][pt] = true;
  if (adj[pos].size() == 0) {
    dp[pos][pt] = (pt ? -1 : 1);
    return dp[pos][pt];
  }
  int br = -1;
  for (auto i : adj[pos]) {
    if (!vis[i][1 - pt]) {
      dp[i][1 - pt] = dfs(i, 1 - pt);
    }
    br = max(dp[i][1 - pt], br);
  }
  dp[pos][pt] = br;
  return dp[pos][pt];
}
void dfs2(int pos, int t) {
  vis[pos][t] = true;
  cout << pos + 1 << " ";
  for (auto i : adj[pos]) {
    if (dp[i][1 - t] == 1 && !vis[i][1 - t]) {
      dfs2(i, 1 - t);
      break;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> m;
  adj.assign(n, vector<int>());
  vis.assign(n, vector<bool>(2, false));
  dp.assign(n, vector<int>(2, 0));
  for (int i = 0; i < n; ++i) {
    int c, x;
    cin >> c;
    for (int j = 0; j < c; ++j) {
      cin >> x;
      x--;
      adj[i].push_back(x);
    }
  }
  cin >> s;
  s--;
  int res = dfs(s, 1);
  if (res == 1) {
    cout << "Win\n";
    vis.assign(n, vector<bool>(2, false));
    dfs2(s, 1);
  } else if (res == -1) {
    cout << "Lose";
  } else {
    cout << "Draw";
  }
  return 0;
}
