Consider a following game between two players:
There is an array $$$b_1$$$, $$$b_2$$$, ..., $$$b_k$$$, consisting of positive integers. Initially a chip is placed into the first cell of the array, and $$$b_1$$$ is decreased by $$$1$$$. Players move in turns. Each turn the current player has to do the following: if the index of the cell where the chip is currently placed is $$$x$$$, then he or she has to choose an index $$$y \in [x, min(k, x + m)]$$$ such that $$$b_y > 0$$$, move the chip to the cell $$$y$$$ and decrease $$$b_y$$$ by $$$1$$$. If it's impossible to make a valid move, the current player loses the game.
Your task is the following: you are given an array $$$a$$$ consisting of $$$n$$$ positive integers, and $$$q$$$ queries to it. There are two types of queries:
The first line contains three integers $$$n$$$, $$$m$$$ and $$$q$$$ ($$$1 \le n, q \le 2 \cdot 10^5$$$, $$$1 \le m \le 5$$$) — the number of elements in $$$a$$$, the parameter described in the game and the number of queries, respectively.
The second line contains $$$n$$$ integers $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ ($$$1 \le a_i \le 10^{12}$$$) — the elements of array $$$a$$$.
Then $$$q$$$ lines follow, each containing a query. There are two types of queries. The query of the first type is denoted by a line $$$1$$$ $$$l$$$ $$$r$$$ $$$d$$$ ($$$1 \le l \le r \le n$$$, $$$1 \le d \le 10^{12}$$$) and means that for every $$$i \in [l, r]$$$ you should increase $$$a_i$$$ by $$$d$$$. The query of the second type is denoted by a line $$$2$$$ $$$l$$$ $$$r$$$ ($$$1 \le l \le r \le n$$$) and means that you have to determine who will win the game if it is played on the subarray of $$$a$$$ from index $$$l$$$ to index $$$r$$$ (inclusive).
There is at least one query of type $$$2$$$.
For each query of type $$$2$$$ print $$$1$$$ if the first player wins in the corresponding game, or $$$2$$$ if the second player wins.
5 2 4 1 2 3 4 5 1 3 5 6 2 2 5 1 1 2 3 2 1 5
1 1
5 1 3 1 1 3 3 4 2 1 5 2 2 5 2 3 5
1 2 1
Name |
---|