func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MOD = 1e9 + 7;   const int INF = 1e9;   const long long LNF = 1e18;   void setIO(string s) {     ios_base::sync_with_stdio(0);     cin.tie(0);   }   const int N = 1e5 + 7;   vector<int> adj[N], ans;   bool vis[N][2], cvis[N];   bool dfs(int u, int p) {     if (vis[u][p]) return false;     vis[u][p] = true;     if (adj[u].empty() && p) {       ans.emplace_back(u);       return true;     }     for (auto& v : adj[u]) {       if (dfs(v, p ^ 1)) {         ans.emplace_back(u);         return true;       }     }     return false;   }   bool cycle(int u) {     if (cvis[u]) return true;     cvis[u] = true;     for (auto& i : adj[u]) {       if (cycle(i)) return true;       cvis[i] = false;     }     return false;   }   int main() {     setIO( input );     int n, m;     cin >> n >> m;     for (int i = 0; i < n; ++i) {       int c;       cin >> c;       for (int j = 0; j < c; ++j) {         int v;         cin >> v;         adj[i].emplace_back(--v);       }     }     int s;     cin >> s;     --s;     if (dfs(s, 0)) {       cout <<  Win n ;       for (int i = (int)ans.size() - 1; i >= 0; --i) cout << ans[i] + 1 <<    ;     } else {       if (cycle(s))         cout <<  Draw ;       else         cout <<  Lose ;     }   }   