#include <bits/stdc++.h>
using namespace std;
long long int vis[100005][2], nxt[100005][2], ch[100005], f;
void dfs(long long int i, vector<vector<long long int>> &v) {
  ch[i] = 1;
  for (long long int j = 0; j < v[i].size(); j++)
    if (ch[v[i][j]] == 1)
      f = 1;
    else if (!ch[v[i][j]])
      dfs(v[i][j], v);
  ch[i] = 2;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int n, m, s;
  cin >> n >> m;
  vector<vector<long long int>> v(n + 1);
  set<long long int> st;
  for (long long int i = 1; i <= n; i++) {
    long long int k;
    cin >> k;
    for (long long int j = 0; j < k; j++) {
      long long int x;
      cin >> x;
      v[i].push_back(x);
    }
    if (k == 0) st.insert(i);
  }
  cin >> s;
  dfs(s, v);
  queue<pair<long long int, long long int>> q;
  q.push({s, 0});
  nxt[s][0] = s;
  while (!q.empty()) {
    long long int i = q.front().first, par = (q.front().second == 0 ? 1 : 0);
    vis[i][q.front().second] = 1;
    q.pop();
    for (long long int j = 0; j < v[i].size(); j++)
      if (vis[v[i][j]][par] == 0) {
        q.push({v[i][j], par});
        nxt[v[i][j]][par] = i;
        if (par == 1 && st.find(v[i][j]) != st.end()) {
          cout << "Win\n";
          i = v[i][j];
          vector<long long int> res;
          while (1) {
            res.push_back(i);
            long long int k = (par == 1 ? 0 : 1);
            i = nxt[i][par];
            par = k;
            if (nxt[i][par] == i) break;
          }
          res.push_back(s);
          reverse(res.begin(), res.end());
          for (long long int i = 0; i < res.size(); i++) cout << res[i] << " ";
          exit(0);
        }
      }
  }
  if (f)
    cout << "Draw";
  else
    cout << "Lose";
}
