#include \n#include \n#include \nusing namespace std;\n\nint main() {\n int N;\n cin >> N;\n vector<vector> doors(N); // 存储每扇门背后能通向的门的编号\n vector inDegree(N, 0); // 记录每个门的入度\n for (int i = 0; i < N; i++) {\n int K;\n cin >> K;\n for (int j = 0; j < K; j++) {\n int D;\n cin >> D;\n doors[i].push_back(D);\n inDegree[D]++;\n }\n }\n \n queue q; // 存储入度为0的门的编号\n for (int i = 0; i < N; i++) {\n if (inDegree[i] == 0) {\n q.push(i);\n }\n }\n \n int farthestDoor = 0; // 距离入口最远的那扇门的编号\n while (!q.empty()) {\n int front = q.front();\n q.pop();\n farthestDoor = front;\n for (int i = 0; i < doors[front].size(); i++) {\n int nextDoor = doors[front][i];\n inDegree[nextDoor]--;\n if (inDegree[nextDoor] == 0) {\n q.push(nextDoor);\n }\n }\n }\n \n cout << farthestDoor << endl;\n \n return 0;\n}