#include <bits/stdc++.h>
using namespace std;
long long win = 0;
vector<long long> g[100009], us, p;
void dfs(long long v, long long l) {
  if (us[v] == 0) {
    us[v] = 1;
  } else {
    us[v] = 2;
  }
  if (g[v].size() == 0 && l < 1000000 && l % 2 == 1) {
    win = 1;
    p.push_back(v);
    return;
  }
  for (long long i = 0; i < g[v].size(); i++) {
    long long to = g[v][i];
    if (us[to] != 2) {
      dfs(to, l + 1);
      if (win == 1) {
        p.push_back(v);
        return;
      }
    }
  }
}
bool ccl(long long v) {
  us[v] = 1;
  for (long long i = 0; i < g[v].size(); i++) {
    long long to = g[v][i];
    if (us[to] == 1) {
      return true;
    } else if (us[to] == 0) {
      if (ccl(to) == true) {
        return true;
      }
    }
  }
  us[v] = 2;
  return false;
}
int main() {
  ios::sync_with_stdio(false);
  long long n, m;
  cin >> n >> m;
  for (long long i = 0; i < n; i++) {
    long long k;
    cin >> k;
    for (long long j = 0; j < k; j++) {
      long long a;
      cin >> a;
      g[i].push_back(a - 1);
    }
  }
  long long s;
  cin >> s;
  s--;
  us = vector<long long>(n, 0);
  p.reserve(100009);
  dfs(s, 0);
  if (win == 1) {
    cout << "Win\n";
    for (long long i = p.size() - 1; i >= 0; i--) {
      cout << p[i] + 1 << " ";
    }
    return 0;
  }
  us = vector<long long>(n, 0);
  if (ccl(s)) {
    cout << "Draw";
  } else {
    cout << "Lose";
  }
  return 0;
}
