11 20
1 2
2 7 6
1 7
4 10 9 3 2
2 9 2
1 3
0
0
3 1 6 7
4 11 7 5 6
2 2 8
4
 5 5
1 2
1 3
2 1 4
1 5
0
1
 5 5
1 2
1 3
2 2 4
1 5
0
1
 4 3
1 2
1 3
1 1
0
1
 6 6
1 2
2 3 6
1 4
0
1 3
1 5
2
 5 5
1 2
2 3 5
1 4
1 2
0
1
 5 5
2 2 3
1 4
1 5
1 3
0
1
 6 6
1 2
2 3 6
1 4
1 5
1 1
0
1
 5 5
1 2
2 4 3
0
1 5
1 2
1
 6 6
2 2 3
1 4
1 4
1 5
1 6
0
1
 5 5
2 2 3
2 4 5
1 5
0
0
1
 5 5
2 2 4
1 3
1 4
1 5
0
1
 57 39
1 57
1 40
1 38
0
0
0
1 20
0
0
1 53
0
0
0
1 36
1 40
1 27
1 11
1 7
1 35
0
1 23
1 44
1 14
1 54
0
1 21
1 28
1 37
1 38
1 26
1 3
0
1 14
0
1 1
1 10
1 52
1 45
0
1 16
0
1 22
1 51
1 48
1 30
1 30
0
1 19
1 33
0
1 45
1 42
1 49
0
1 23
0
1 31
15
 15 20
3 4 9 7
0
1 1
3 5 6 1
1 13
0
4 8 15 4 2
1 7
1 2
0
1 4
0
2 3 11
1 5
2 1 6
4
 5 5
2 2 3
1 4
0
1 5
1 4
2
 6 6
2 2 3
1 4
1 5
0
1 6
1 4
1
 4 4
2 2 4
1 3
1 1
0
3
 2 1
0
1 1
1
 8 8
2 2 5
1 3
1 7
0
1 6
1 8
1 4
1 4
1
 5 5
1 2
1 3
1 4
2 3 5
0
1
 4 4
2 2 3
1 4
1 4
0
1
 5 5
1 2
2 3 4
0
1 5
1 3
1
 6 6
1 2
2 3 4
1 5
1 5
1 6
0
1
 3 2
1 2
1 1
0
3
 5 5
2 2 3
1 5
1 4
1 5
0
1
 92 69
1 76
1 14
1 9
0
1 46
1 80
0
0
1 77
0
1 53
1 81
1 61
1 40
0
1 20
1 71
1 24
1 54
1 82
1 23
0
1 63
1 25
1 38
1 68
0
1 65
0
1 76
1 55
1 87
1 1
1 37
1 68
1 30
1 17
1 19
0
1 16
1 69
0
1 60
1 86
0
1 44
1 32
1 10
1 8
0
0
0
0
0
1 2
1 39
0
1 74
1 5
1 28
1 79
1 32
1 34
0
1 81
1 85
1 6
1 18
0
0
1 58
1 88
1 7
1 78
1 43
1 5
1 61
1 90
1 31
1 75
1 72
1 80
1 13
0
0
1 21
1 70
1 30
0
1 68
1 3
1 62
91
 5 5
2 2 4
1 3
1 1
1 5
0
1
 3 3
1 2
2 1 3
0
1
 6 6
2 2 4
1 3
0
1 5
1 6
1 3
1
 53 38
0
1 35
0
1 32
0
0
1 49
1 25
0
1 19
0
0
1 25
1 48
1 50
1 2
1 4
1 50
1 34
1 4
1 46
0
1 4
1 5
1 43
1 8
1 40
1 47
1 21
1 43
0
1 10
1 27
1 33
1 20
1 26
0
0
0
1 53
0
0
1 45
1 23
1 7
1 52
1 51
0
1 29
1 48
1 36
1 2
1 28
2
 8 8
2 2 3
1 4
1 4
1 5
1 6
0
1 8
1 7
1
 5 5
1 2
1 3
1 4
2 2 5
0
1

Win
4 10 11 8
 Win
1 2 3 1 2 3 4 5
 Draw
 Draw
 Lose
 Win
1 2 3 4 2 5
 Lose
 Win
1 2 3 4 5 1 2 6
 Win
1 2 4 5 2 3
 Lose
 Lose
 Lose
 Draw
 Win
4 5 13 3 1 4 5 13 3 1 9 2
 Draw
 Lose
 Win
3 1 2 3 1 4
 Lose
 Lose
 Draw
 Lose
 Lose
 Lose
 Lose
 Win
1 3 4 5
 Lose
 Win
1 2 3 1 4 5
 Draw
 Lose
 Draw
 Lose
 Win
1 2 3 4 2 3 4 5

#include <bits/stdc++.h>
using namespace std;
int s;
pair<int, int> vis[100001];
int vis2[100001];
vector<int> a[100001];
vector<int> cycle_points;
bool winner = false;
pair<int, int> par[100001];
unordered_map<int, bool> bolo;
stack<int> trace;
bool visited[100001];
bool recStack[100001];
class Graph {
  int V;
  list<int> *adj;
  bool isCyclicUtil(int v);

 public:
  Graph(int V);
  void addEdge(int v, int w);
  bool isCyclic();
};
Graph::Graph(int V) {
  this->V = V;
  adj = new list<int>[V];
}
void Graph::addEdge(int v, int w) { adj[v].push_back(w); }
bool Graph::isCyclicUtil(int v) {
  if (visited[v] == false) {
    visited[v] = true;
    recStack[v] = true;
    list<int>::iterator i;
    for (i = adj[v].begin(); i != adj[v].end(); ++i) {
      if (!visited[*i] && isCyclicUtil(*i))
        return true;
      else if (recStack[*i])
        return true;
    }
  }
  recStack[v] = false;
  return false;
}
bool Graph::isCyclic() {
  for (int i = 0; i < V; i++) {
    visited[i] = false;
    recStack[i] = false;
  }
  for (int i = 0; i < V; i++)
    if (isCyclicUtil(i)) return true;
  return false;
}
int i = 1;
queue<int> qu;
void dfs(int x) {
  qu.push(x);
  while (!qu.empty()) {
    int x = qu.front();
    qu.pop();
    if (a[x].size() == 0) {
      bolo[x] = true;
    }
    for (int k = 0; k < a[x].size(); k++) {
      if (vis2[a[x][k]] == 0) {
        vis2[a[x][k]] = 1;
        qu.push(a[x][k]);
      }
    }
  }
}
bool shav = false;
void w(int x, short col) {
  for (int k = 0; k < a[x].size(); k++) {
    if (shav) return;
    if (col == 1) {
      if (vis[a[x][k]].second == 0) {
        vis[a[x][k]].second = 1;
        par[a[x][k]].second = x;
        if (a[a[x][k]].size() == 0) {
          shav = true;
          int la = a[x][k];
          int c = 2;
          winner = true;
          while (1) {
            trace.push(la);
            if (c == 1) {
              la = par[la].first;
              c = 2;
            } else {
              c = 1;
              la = par[la].second;
            }
            if (la == s && c == 1) {
              trace.push(s);
              return;
            }
          }
        }
        w(a[x][k], 2);
      }
    } else {
      if (vis[a[x][k]].first == 0) {
        par[a[x][k]].first = x;
        vis[a[x][k]].first = 1;
        w(a[x][k], 1);
      }
    }
  }
}
Graph g(100001);
void q(int x) {
  for (int k = 0; k < a[x].size(); k++) {
    if (vis2[a[x][k]] == 0) {
      vis2[a[x][k]] = 1;
      g.addEdge(x, a[x][k]);
      q(a[x][k]);
    } else {
      g.addEdge(x, a[x][k]);
    }
  }
}
int main() {
  int n, m;
  cin >> n >> m;
  int x;
  int p;
  for (int k = 0; k < n; k++) {
    cin >> x;
    for (int j = 0; j < x; j++) {
      cin >> p;
      a[k + 1].push_back(p);
    }
  };
  cin >> s;
  vis2[s] = 1;
  dfs(s);
  vis[s].first = 1;
  w(s, 1);
  memset(vis2, 0, (n + 1) * sizeof(int));
  vis2[s] = 1;
  q(s);
  if (winner) {
    cout << "Win" << endl;
    while (!trace.empty()) {
      cout << trace.top() << " ";
      trace.pop();
    }
    return 0;
  }
  if (g.isCyclic()) {
    cout << "Draw";
    return 0;
  }
  cout << "Lose";
  return 0;
}
