## QTREE5 - Query on a tree V

You are given a tree (an acyclic undirected connected graph) with N nodes. The tree nodes are numbered from 1 to N. We define dist(a, b) as the number of edges on the path from node a to node b.

Each node has a color, white or black. All the nodes are black initially.

We will ask you to perfrom some instructions of the following form:

- 0 i : change the color of i-th node(from black to white, or from white to black).
- 1
**v**: ask for the minimum dist(u,**v**), node u must be white(u can be equal to**v**). Obviously, as long as node**v**is white, the result will always be 0.

### Input

- In the first line there is an integer N (N <= 100000)
- In the next N-1 lines, the i-th line describes the i-th edge: a line with two integers a b denotes an edge between a and b.
- In the next line, there is an integer Q denotes the number of instructions (Q <= 100000)
- In the next Q lines, each line contains an instruction "0 i" or "1
**v**"

### Output

For each "1 **v**" operation, print one integer representing its result.
If there is no white node in the tree, you should write "**-1**".

### Example

Input:10 1 2 1 3 2 4 1 5 1 6 4 7 7 8 5 9 1 10 10 0 6 0 6 0 6 1 3 0 1 0 1 1 3 1 10 1 4 1 6Output:2 2 2 3 0

Added by: | Qu Jun |

Date: | 2008-08-13 |

Time limit: | 0.714s |

Source limit: | 50000B |

Memory limit: | 1536MB |

Cluster: | Cube (Intel G860) |

Languages: | All except: ERL JS-RHINO NODEJS PERL6 VB.NET |

Resource: | XunYunbo, modified from ZJOI07 |