#include <bits/stdc++.h>
using namespace std;
void func(void) {
  freopen("input.c", "r", stdin);
  freopen("output.c", "w", stdout);
}
const int N = 2e5 + 10;
vector<long long> a[N];
long long vis[N], dis[N][2], par[N][2];
long long aa;
vector<long long> leaf;
void bfs(int x) {
  queue<long long> q;
  par[x][0] = par[x][1] = -1;
  q.push(x);
  dis[x][0] = 0;
  for (int i = 0; i < N; i++)
    dis[i][0] = dis[i][1] = par[i][0] = par[i][1] = -1;
  dis[x][0] = 0;
  while (!q.empty()) {
    int y = q.front();
    q.pop();
    if (a[y].size() == 0) {
      leaf.push_back(y);
    }
    for (int i = 0; i < a[y].size(); i++) {
      int z = a[y][i];
      if (dis[y][0] != -1 and dis[z][1] == -1) {
        dis[z][1] = dis[y][0] + 1;
        par[z][1] = y;
        q.push(z);
      }
      if (dis[y][1] != -1 and dis[z][0] == -1) {
        dis[z][0] = dis[y][1] + 1;
        par[z][0] = y;
        q.push(z);
      }
    }
  }
}
int flag = 0;
void dfs(int x) {
  vis[x] = 1;
  for (int i = 0; i < a[x].size(); i++) {
    int y = a[x][i];
    if (!vis[y]) dfs(y);
    if (vis[y] == 1) flag = 1;
  }
  vis[x] = 2;
}
stack<long long> st;
long long d = 0;
void printPath(long long y, long long dis, long long dd) {
  st.push(y);
  d = max(d, dd);
  if (dis & 1) {
    if (par[y][1] == -1) return;
    printPath(par[y][1], 0, dd + 1);
  } else {
    if (par[y][0] == -1) return;
    printPath(par[y][0], 1, dd + 1);
  }
}
int main() {
  long long n, q, i, j = 0, temp, t, k, ans = 0, sum = 0, x, y, z, cnt = 0, m,
                     fg = 0, mx = 0, mx1 = 0, mn = 8000000000000000000,
                     mn1 = 8000000000000000000;
  scanf("%lld %lld", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &x);
    while (x--) {
      scanf("%lld", &y);
      a[i].push_back(y);
    }
  }
  scanf("%lld", &x);
  dfs(x);
  bfs(x);
  for (int i = 0; i < leaf.size(); i++) {
    y = leaf[i];
    if (dis[y][1] != -1) {
      ans = y;
      fg = 1;
      break;
    }
  }
  if (fg == 0) {
    if (flag)
      cout << "Draw\n";
    else
      cout << "Lose\n";
    return 0;
  }
  printPath(ans, 1, 1);
  if (d == 1) {
    cout << "Lose\n";
    return 0;
  }
  cout << "Win\n";
  while (!st.empty()) {
    x = st.top();
    st.pop();
    printf("%lld ", x);
  }
}
