#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
vector<int> v[N];
bool vis[N][2], In[N], can[N], flag;
int pre[N][2], n, s, m;
void dfs(int x, int k) {
  if (In[x]) {
    flag = 1;
  }
  if (vis[x][k]) return;
  vis[x][k] = 1;
  In[x] = 1;
  int l = v[x].size() - 1, y;
  for (register int i = (0); i <= (l); ++i) {
    y = v[x][i];
    if (!vis[y][k ^ 1]) pre[y][k ^ 1] = x;
    dfs(y, k ^ 1);
  }
  In[x] = 0;
}
void print(int x, int k) {
  if (x == s && k == 1) {
    printf("%d ", s);
    return;
  }
  print(pre[x][k], k ^ 1);
  printf("%d ", x);
}
signed main() {
  int ti, y;
  scanf("%d %d", &n, &m);
  for (register int i = (1); i <= (n); ++i) {
    scanf("%d", &ti);
    if (!ti) can[i] = 1;
    for (register int j = (1); j <= (ti); ++j)
      scanf("%d", &y), v[i].push_back(y);
  }
  scanf("%d", &s);
  dfs(s, 1);
  for (register int i = (1); i <= (n); ++i)
    if (can[i] && vis[i][0]) {
      printf("Win\n");
      print(i, 0);
      return 0;
    }
  if (flag)
    printf("Draw\n");
  else
    printf("Lose\n");
  return 0;
}
