#include<iostream>
#include<queue>
#include<string>
using namespace std;
const int maxn=100001;
struct node{
int from;
int to;
node(int f,int t):from(f),to(t){}
};
vector<node>graph[maxn];
int main(){
int n;
cin>>n;
int indegree[n];
bool visit[n];
for(int i=0;i<n;i++){
indegree[i]=0;
visit[i]=false;
}
for(int i=0;i<n;i++){
string str;
cin>>str;
if(str[6]=='N'){
continue;
}
int m=str[4]-'0';
long long pos=10;
while(str.size()>pos){
int to=str[pos]-'0';
indegree[to]++;
pos+=6;
graph[m].push_back(node(m,to));
}
}
queue<int>qt;
for(int i=0;i<n;i++){
if(indegree[i]==0){
qt.push(i);
visit[i]=true;
}
}
while(!qt.empty()){
int n=qt.front();
qt.pop();
cout<<"Task"<<n<<" ";
for(int i=0;i<graph[n].size();i++){
int u=graph[n][i].to;
indegree[u]--;
if(indegree[u]==0&&visit[u]==false){
qt.push(u);
visit[u]=true;
}
}
}
}