In this problem at each moment you have a set of intervals. You can move from interval (*a*, *b*) from our set to interval (*c*, *d*) from our set if and only if *c* < *a* < *d* or *c* < *b* < *d*. Also there is a path from interval *I*_{1} from our set to interval *I*_{2} from our set if there is a sequence of successive moves starting from *I*_{1} so that we can reach *I*_{2}.

Your program should handle the queries of the following two types:

- "1 x y" (
*x*<*y*) — add the new interval (*x*,*y*) to the set of intervals. The length of the new interval is guaranteed to be strictly greater than all the previous intervals. - "2 a b" (
*a*≠*b*) — answer the question: is there a path from*a*-th (one-based) added interval to*b*-th (one-based) added interval?

Answer all the queries. Note, that initially you have an empty set of intervals.

The first line of the input contains integer *n* denoting the number of queries, (1 ≤ *n* ≤ 100). Each of the following lines contains a query as described above. All numbers in the input are integers and don't exceed 10^{9} by their absolute value.

It's guaranteed that all queries are correct.

提交代码