#D8947. Depth First Search

    ID: 7436 Type: Default 1000ms 134MiB

Depth First Search

Depth-first search (DFS) follows the strategy to search ”deeper” in the graph whenever possible. In DFS, edges are recursively explored out of the most recently discovered vertex vv that still has unexplored edges leaving it. When all of vv's edges have been explored, the search ”backtracks” to explore edges leaving the vertex from which vv was discovered.

This process continues until all the vertices that are reachable from the original source vertex have been discovered. If any undiscovered vertices remain, then one of them is selected as a new source and the search is repeated from that source.

DFS timestamps each vertex as follows:

  • d[v]d[v] records when vv is first discovered.
  • f[v]f[v] records when the search finishes examining vv’s adjacency list.

Write a program which reads a directed graph G=(V,E)G = (V, E) and demonstrates DFS on the graph based on the following rules:

  • GG is given in an adjacency-list. Vertices are identified by IDs 1,2,...n1, 2,... n respectively.
  • IDs in the adjacency list are arranged in ascending order.
  • The program should report the discover time and the finish time for each vertex.
  • When there are several candidates to visit during DFS, the algorithm should select the vertex with the smallest ID.
  • The timestamp starts with 1.

Constraints

  • 1n1001 \leq n \leq 100

Input

In the first line, an integer nn denoting the number of vertices of GG is given. In the next nn lines, adjacency lists of uu are given in the following format:

uu kk v1v_1 v2v_2 ... vkv_k

uu is ID of the vertex and kk denotes its degree. viv_i are IDs of vertices adjacent to uu.

Output

For each vertex, print idid, dd and ff separated by a space character in a line. idid is ID of the vertex, dd and ff is the discover time and the finish time respectively. Print in order of vertex IDs.

Examples

Input

4 1 1 2 2 1 4 3 0 4 1 3

Output

1 1 8 2 2 7 3 4 5 4 3 6

Input

6 1 2 2 3 2 2 3 4 3 1 5 4 1 6 5 1 6 6 0

Output

1 1 12 2 2 11 3 3 8 4 9 10 5 4 7 6 5 6

inputFormat

Input

In the first line, an integer nn denoting the number of vertices of GG is given. In the next nn lines, adjacency lists of uu are given in the following format:

uu kk v1v_1 v2v_2 ... vkv_k

uu is ID of the vertex and kk denotes its degree. viv_i are IDs of vertices adjacent to uu.

outputFormat

Output

For each vertex, print idid, dd and ff separated by a space character in a line. idid is ID of the vertex, dd and ff is the discover time and the finish time respectively. Print in order of vertex IDs.

Examples

Input

4 1 1 2 2 1 4 3 0 4 1 3

Output

1 1 8 2 2 7 3 4 5 4 3 6

Input

6 1 2 2 3 2 2 3 4 3 1 5 4 1 6 5 1 6 6 0

Output

1 1 12 2 2 11 3 3 8 4 9 10 5 4 7 6 5 6

样例

4
1 1 2
2 1 4
3 0
4 1 3
1 1 8

2 2 7 3 4 5 4 3 6

</p>