#include <bits/stdc++.h>
using namespace std;
const int MaxN = 1e5 + 10;
int n, m, init;
vector<int> e[MaxN];
bool vis[MaxN][2], stck[MaxN], win, draw;
int p[MaxN][2], last_x, last_q;
stack<int> sol;
void f(int x, int y, int q) {
  stck[x] = false;
  if (vis[x][q]) return;
  stck[x] = true;
  vis[x][q] = true;
  p[x][q] = y;
  if (q == 1 && e[x].size() == 0) {
    win = true;
    last_x = x;
    last_q = 1;
  }
  for (int z : e[x]) {
    if (stck[z]) draw = true;
    f(z, x, 1 - q);
  }
  stck[x] = false;
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int c;
    cin >> c;
    e[i].resize(c);
    for (int j = 0; j < c; j++) cin >> e[i][j];
  }
  cin >> init;
  f(init, init, 0);
  if (win) {
    cout << "Win\n";
    do {
      sol.push(last_x);
      last_x = p[last_x][last_q];
      last_q = 1 - last_q;
    } while (last_x != init or p[last_x][last_q] != init);
    cout << init;
    for (; !sol.empty(); sol.pop()) cout << " " << sol.top();
    cout << "\n";
  } else if (draw)
    cout << "Draw\n";
  else
    cout << "Lose\n";
  return 0;
}
