#include
#include
#include
#include
#include
using namespace std;
int b = 0, end;
int map[50][50];
int d[10005];
int v[10005];
int vis[50];
int n;
void DFS(int x)
{
vis[x] = 1;
d[x] = b;
for (int i = 0; i < n; i++)
{
if (map[x][i] && !vis[i])
{
b++;
DFS(i);
}
}
b++;
v[x] = b;
}
int main()
{
cin >> n;
memset(map, 0, sizeof(map));
memset(vis, 0, sizeof(vis));
for (int i = 0; i < n; i++)
{
int k,u;
cin >>u>> k;
if (k == 0)
continue;
else
{
for (int j = 0; j < k; j++)
{
int q;
cin >> q;
map[u][q] = 1;
}
}
}
b = 1;
DFS(0);
for (int i = 0; i < n; i++)
{
cout << i << " " << d[i] <<" " << v[i] << endl;
}
}
4
0 1 1
1 1 3
2 0
3 1 2