#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1e5 + 9;
int res[MAX_N][2], point[MAX_N], num_s, st[MAX_N * 4], vis[MAX_N];
vector<int> vec[MAX_N];
int N, M, x;
void init() {
  num_s = 0;
  memset(st, 0, sizeof(st));
  memset(vis, 0, sizeof(vis));
  memset(res, 0, sizeof(res));
  memset(point, 0, sizeof(point));
  for (int i = 0; i < MAX_N; i++) vec[i].clear();
}
bool dfs(int pos, int x) {
  if (res[pos][x ^ 1] == 1) return false;
  res[pos][x ^ 1] = 1;
  st[num_s++] = pos;
  if (vec[pos].size() == 0 && res[pos][1]) {
    return true;
  }
  for (int i = 0; i < vec[pos].size(); i++) {
    if (dfs(vec[pos][i], x ^ 1)) return true;
  }
  num_s--;
  return false;
}
bool cheak(int pos) {
  vis[pos] = 1;
  bool f = false;
  for (int i = 0; i < vec[pos].size(); i++) {
    if (vis[vec[pos][i]] == 1)
      f = true;
    else if (vis[vec[pos][i]] == 0)
      f = cheak(vec[pos][i]);
    if (f) return true;
  }
  vis[pos] = 2;
  return false;
}
int main() {
  cin >> N >> M;
  init();
  for (int i = 1; i <= N; i++) {
    int num, temp;
    scanf("%d", &num);
    for (int j = 0; j < num; j++) {
      scanf("%d", &temp);
      vec[i].push_back(temp);
    }
  }
  int pos;
  cin >> pos;
  if (dfs(pos, 1)) {
    cout << "Win" << endl;
    for (int i = 0; i < num_s; i++) {
      printf("%d ", st[i]);
    }
    cout << endl;
  } else if (cheak(pos))
    cout << "Draw" << endl;
  else
    cout << "Lose" << endl;
}
