bool dfs( int v ) { if (marked[v]) return 0; marked[v] = 1; for (int x : c[v]) if (x == end || dfs(x)) { cout << x << endl; return 1; } return 0; };