CF1217F Forced Online Queries Problem
Description
You are given an undirected graph with $ n $ vertices numbered from $ 1 $ to $ n $ . Initially there are no edges.
You are asked to perform some queries on the graph. Let $ last $ be the answer to the latest query of the second type, it is set to $ 0 $ before the first such query. Then the queries are the following:
- $ 1~x~y $ ( $ 1 \le x, y \le n $ , $ x \ne y $ ) — add an undirected edge between the vertices $ (x + last - 1)~mod~n + 1 $ and $ (y + last - 1)~mod~n + 1 $ if it doesn't exist yet, otherwise remove it;
- $ 2~x~y $ ( $ 1 \le x, y \le n $ , $ x \ne y $ ) — check if there exists a path between the vertices $ (x + last - 1)~mod~n + 1 $ and $ (y + last - 1)~mod~n + 1 $ , which goes only through currently existing edges, and set $ last $ to $ 1 $ if so and $ 0 $ otherwise.
Good luck!
Input Format
The first line contains two integer numbers $ n $ and $ m $ ( $ 2 \le n, m \le 2 \cdot 10^5 $ ) — the number of vertices and the number of queries, respectively.
Each of the following $ m $ lines contains a query of one of two aforementioned types. It is guaranteed that there is at least one query of the second type.
Output Format
Print a string, consisting of characters '0' and '1'. The $ i $ -th character should be the answer to the $ i $ -th query of the second type. Therefore the length of the string should be equal to the number of queries of the second type.
Explanation/Hint
The converted queries in the first example are:
- 1 1 2
- 1 1 3
- 2 3 2
- 1 3 5
- 2 4 5
- 1 2 4
- 2 3 4
- 1 2 4
- 2 5 4
The converted queries in the second example are:
- 1 1 2
- 1 2 3
- 1 3 1
- 2 1 3
- 1 1 3
- 2 3 1
- 1 2 3
- 2 2 3
- 2 1 2