Diberikan sebuah larik $a_0, a_1, \dots, a_{2^n-1}$ dengan panjang $2^n$. Untuk sebuah string $q$ dengan panjang $n$ pada alfabet 0, 1, ? (indeks dimulai dari 1), definisikan "jumlah himpunan bagian diperumum" $S(q)$ sebagai jumlah dari $a_j$ untuk semua indeks $j$ yang memenuhi:
- Untuk setiap $1 \le k \le n$, jika $q_k = \texttt{0}$ maka bit ke-$k$ dari $j$ adalah $0$.
- Untuk setiap $1 \le k \le n$, jika $q_k = \texttt{1}$ maka bit ke-$k$ dari $j$ adalah $1$.
- Jika $q_k = \texttt{?}$ maka tidak ada batasan pada bit ke-$k$ dari $j$.
Sebagai contoh, ketika $n = 3$ dan $q = \texttt{0?1}$, jumlah himpunan bagian diperumumnya adalah $S(q) = a_4 + a_6$ (biner $\texttt{100}$ dan $\texttt{110}$). Perhatikan bahwa bit pertama adalah bit terendah.
Tugas Anda adalah menghitung jumlah himpunan bagian diperumum untuk setiap string dengan panjang $n$ pada alfabet 0, 1, ?. Karena total keluarannya bisa sangat besar, Anda hanya perlu mengeluarkan hasil bitwise XOR dari semua jumlah tersebut.
Masukan
Baris pertama masukan berisi sebuah bilangan bulat $n$ ($1 \le n \le 16$).
Baris kedua masukan berisi $2^n$ bilangan bulat $a_0, a_1, \dots, a_{2^n-1}$ ($0 \le a_i \le 9$), yaitu isi dari larik $a$.
Keluaran
Cetak sebuah bilangan bulat yang menyatakan bitwise-XOR dari semua jumlah himpunan bagian diperumum.
Contoh
Contoh Masukan 1
1 3 5
Contoh Keluaran 1
14
Contoh Masukan 2
2 2 6 8 8
Contoh Keluaran 2
0
Catatan
Berikut adalah string kueri $q$ beserta jumlah himpunan bagian diperumum $S(q)$ yang bersesuaian pada contoh 2:
- $q = \texttt{00}, S(q) = a_0 = 2$
- $q = \texttt{10}, S(q) = a_1 = 6$
- $q = \texttt{?0}, S(q) = a_0 + a_1 = 2 + 6 = 8$
- $q = \texttt{01}, S(q) = a_2 = 8$
- $q = \texttt{11}, S(q) = a_3 = 8$
- $q = \texttt{?1}, S(q) = a_2 + a_3 = 16$
- $q = \texttt{0?}, S(q) = a_0 + a_2 = 10$
- $q = \texttt{1?}, S(q) = a_1 + a_3 = 14$
- $q = \texttt{??}, S(q) = a_0 + a_1 + a_2 + a_3 = 24$
Sekarang mudah diverifikasi bahwa keluarannya adalah $0$.