Cho dãy số nguyên \(A\) độ dài \(N\). Bạn hãy lập trình xử lý \(Q\) truy vấn thuộc một trong hai loại sau:
1 p x
: Thực hiện gán \(A_p\leftarrow A_p\oplus x\).2 l r
: Tính và in ra giá trị \(A_l\oplus A_{l+1}\oplus ... \oplus A_{r-1}\oplus A_r\).
Trong đó, \(\oplus\) biểu thị phép toán XOR bit.
Input
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) \(\left(1\le N, Q\le 3\times 10^5\right)\).
- Dòng tiếp theo chứa \(N\) số nguyên \(A_1\), \(A_2\),..., \(A_N\). \(\left(0\le A_i < 2^{30}\right)\)
- Mỗi dòng trong \(Q\) dòng tiếp theo có dạng
1 p x
hoặc2 l r
theo như mô tả ở trên. Dữ liệu đảm bảo \(1\leq p\leq N\), \(0\le x < 2^{30}\), \(1\leq l \leq r \leq N\).
Output
- Với mỗi truy vấn dạng
2 l r
, in ra một dòng mới chứa một số nguyên là giá trị \(A_l\oplus A_{l+1}\oplus ... \oplus A_{r-1}\oplus A_r\).
Ví dụ
Sample input 01
3 5
3 4 5
2 1 3
2 2 3
1 2 3
2 2 3
2 1 3
Sample output 01
2
1
2
1