Спершу спростимо вплив одного запиту на вартість дерева.
Запит додає (за XOR) до всіх вершин піддерева . Вартість дерева — це XOR усіх значень, тому в неї це увійде рівно стільки разів, скільки вершин у піддереві. Але x \oplus x = 0, отже важлива лише парність розміру піддерева:
якщо парний, запит взагалі не змінює вартість;
якщо непарний, вартість змінюється на .
Позначимо — XOR усіх початкових значень a_u, і назвемо запит суттєвим, якщо розмір його піддерева непарний. Тоді для будь-якої підмножини запитів вартість дорівнює
Тепер порахуємо суму по всіх 2^q підмножинах побітово. Зафіксуємо біт і подивимось, у скількох підмножинах він дорівнює одиниці.
Якщо жоден суттєвий запит не має біта , то цей біт результату завжди дорівнює біту числа . Отже, він одиничний або в усіх 2^q підмножинах, або в жодній.
Якщо ж хоча б один суттєвий запит має біт , то рівно половина підмножин дає одиницю. Це видно з простої бієкції: зафіксуємо один такий запит і зіставимо кожній підмножині ту, що відрізняється лише його наявністю — це розбиває всі підмножини на пари з протилежними значеннями біта. Отже, рівно 2^{q-1} підмножин.
Тому відповідь дорівнює
усе за модулем .
Розміри піддерев (точніше, їхні парності) рахуються одним обходом у глибину. Значення сягають 2^{60}, тому перебирайте біти до -го включно і не забувайте, що степені двійки в сумі теж треба брати за модулем.