Жанез portağalları çox sevir! Buna görə də o, portağalları skan etmək üçün bir cihaz hazırlayıb. Kamera və Raspberry Pi 3b+ kompüteri vasitəsilə o, portağalların 3D şəkillərini yaratmağa başlayıb. Onun şəkil prosessoru çox güclü deyil, buna görə də o, yalnız qabığın üzərindəki deşiklər haqqında məlumat verən bitlik tam ədəd alır. Bu bitlik tam ədəd , rəqəmdən (bitdən) ibarət ardıcıllıq şəklində təqdim olunur, hər biri ya bir, ya da sıfırdır. Əgər -dan başlasaq, hər bir -ci biti bir olan üçün 2^i əlavə edərək ədəd əldə edə bilərik. Daha dəqiq desək, d_{31}, d_{30}, ..., d_0 ardıcıllığı şəklində təqdim olunur, burada D = d_{31} \cdot 2^{31} + d_{30} \cdot 2^{30} + ... + d_1 \cdot 2^1 + d_0 \cdot 2^0. Məsələn, 0, ..., 0, 1, 1, 0, 1 kimi təqdim olunur.
Жанез portağalı skan etdi; lakin bəzən o, proqramınızın icrası zamanı bir portağalı (-ci portağalı) yenidən skan etməyə qərar verir. Bu o deməkdir ki, bu skanlamadan başlayaraq o, -ci portağal üçün yenilənmiş dəyəri istifadə edir.
Жанез bu portağalları təhlil etmək istəyir. O, XOR (eksklüziv VƏ YA) əməliyyatını çox maraqlı hesab edir, buna görə də bəzi hesablamalar aparmağa qərar verir. O, -dən -ya qədər portağalların bir aralığını seçir (burada l \le u) və bu aralıqdakı bütün elementlərin, bu aralıqdakı ardıcıl elementlərin bütün cütlərinin, ardıcıl elementdən ibarət bütün ardıcıllıqların və s., u - l + 1 ardıcıl elementdən ibarət ardıcıllığa (aralıqdakı bütün elementlərə) qədər olan XOR dəyərini bilmək istəyir.
Əgər l = 2 və u = 4-dürsə və skan edilmiş dəyərlərdən ibarət massivimiz varsa, proqram a_2 \oplus a_3 \oplus a_4 \oplus (a_2 \oplus a_3) \oplus (a_3 \oplus a_4) \oplus (a_2 \oplus a_3 \oplus a_4) dəyərini qaytarmalıdır, burada XOR əməliyyatını təmsil edir və a_i massivindəki -ci elementi təmsil edir.
XOR əməliyyatını belə təyin edək:
Əgər birinci dəyərin -ci biti ikinci dəyərin -ci biti ilə üst-üstə düşürsə, nəticənin -ci biti -a bərabərdir;
Əgər birinci dəyərin -ci biti ikinci dəyərin -ci bitindən fərqlidirsə, nəticənin -ci biti -ə bərabərdir.
Məsələn, 13 \oplus 23 = 26.
Birinci sətirdə və q~(0 < n, q \le 2 \cdot 10^5) iki müsbət tam ədəd var (ümumi yenidən skan etmə və sorğu — əməliyyatlar sayı).
Növbəti sətirdə qeyri-mənfi tam ədəd var, bu ədədlər massivinin dəyərlərini (portağalların skan nəticələrini) təmsil edir. a_i~(a_i \le 10^9) elementi -ci portağal üçün dəyəri ehtiva edir. İndeks -dən başlayır.
Əməliyyatlar növbəti sətirdə üç müsbət tam ədəd ilə təsvir olunur.
Əgər əməliyyat tipi -dirsə (yenidən skan etmə), birinci tam ədəd -ə bərabərdir, sonra (Жанезin yenidən skan etmək istədiyi portağalın indeksi) və (yenidən skan edilmiş -ci portağalın nəticəsi) gəlir.
Əgər əməliyyat tipi -dirsə (sorğu), birinci tam ədəd -ə bərabərdir, sonra və gəlir.
Hər bir sorğu üçün ayrı sətirdə bir tam ədəd çıxarın. Qeyd edək ki, çıxışın -ci sətiri -ci sorğunun nəticəsinə uyğun olmalıdır.
Misal 1 üçün izah.
Əvvəlcə A = [1, 2, 3]. Birinci sorğu bütün aralığı əhatə edir. Nəticə 1 \oplus 2 \oplus 3 \oplus (1 \oplus 2) \oplus (2 \oplus 3) \oplus (1 \oplus 2 \oplus 3) = 2 olacaq.
Sonra birinci portağalın dəyəri -ə yenilənir. Bu, eyni sorğu üçün nəticəni dəyişdirir (aralıqda ): 3 \oplus 2 \oplus 3 \oplus (3 \oplus 2) \oplus (2 \oplus 3) \oplus (3 \oplus 2 \oplus 3) = 0.
Nümunə 1
Nümunə 2