Lepeze
문제
Little Fran received a wooden frame in the shape of a regular polygon as a gift. As polygon has vertices, he also received wooden sticks that match each possible diagonal. Vertices of the polygon are labelled with integers from to in counterclockwise order. In the beginning, Fran arranged sticks inside the frame in such a way that every stick touches two non-neighboring vertive of the frame, and no two sticks cross each other. In other words, he made a triangulation. As that was not interesting enough for him, he decided to play with this configuration by applying a particular operation that consists of two steps:
- Remove a stick.
- Add a new stick in such a way that we obtain a new triangulation.
We characterize the operation with an ordered pair of unordered pairs which signifies that little Fran removed a stick touching vertices and , and added a stick touching vertices and .
Fran loves hand fans so, while doing these operations, he sometimes asks himself: “How many operations is needed to transform this triangulation into a “fan” triangulation in vertex , and, in how many ways is this achievable?”.
Since he is busy doing operations and having fun, he asks for your help!
“Fan” triangulation in vertex is a triangulation where all diagonals have a common endpoint, namely vertex .
Let the number of needed operations be . Let be a sequence of operations that, when applied in given order, achieves wanted triangulation, thus representing one way of getting there. Let be another such sequence. Two sequences are distinct if there exists an index such that .
As the number of such sequences can be huge, little Fran is only interested in its remainder modulo .
입력
In the first line are integers and (4 ≤ n ≤ 2 \cdot 10^5, 1 ≤ q ≤ 2 \cdot 10^5), the number of vertices and the number of events.
In each of the next lines there are integers , (1 ≤ x_i , y_i ≤ n), the labels of vertices that the -th stick touches.
In each of the next lines there is the integer (1 ≤ t_i ≤ 2) that represents the type of event.
If , it is followed by integers , , , (1 ≤ a_i , b_i , c_i , d_i ≤ n) that signify an operation is being made at that moment. It is guaranteed that given operation can be realized.
If , it is followed by an integer (1 ≤ x_i ≤ n), which means that little Fran is interested in data for the “fan” triangulation at vertex in relation to the current triangulation.
출력
For every event of type , in order they came in input, output two integers, minimal number of operations needed and number of ways to get to the target triangulation using minimal number of operations.
예제
예제 1
4 3 1 3 2 1 1 1 3 2 4 2 1
0 1 1 1
예제 2
5 4 1 3 3 5 2 1 2 2 1 1 3 2 5 2 2
1 1 2 1 1 1
예제 3
9 3 1 5 1 7 2 4 2 5 5 7 7 9 2 1 1 2 5 1 4 2 1
4 12 3 6