#ARC156D. [ARC156D] Xor Sum 5

[ARC156D] Xor Sum 5

配点 : 700700

問題文

長さ NN の非負整数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N) 、および正整数 KK が与えられます。

1XiN (1iK)1 \leq X_i \leq N\ (1\leq i \leq K) を満たす長さ KK の正整数列 X=(X1,X2,,XK)X=(X_1,X_2,\dots,X_K)NKN^K 通り考えられますが、それらすべてに対する i=1KAXi\displaystyle \sum_{i=1}^{K} A_{X_i} のビット単位 XOR\mathrm{XOR} を求めてください。

ビット単位 XOR\mathrm{XOR} 演算とは

非負整数 A,BA, B のビット単位 XOR\mathrm{XOR}ABA \oplus B は、以下のように定義されます。

  • ABA \oplus B を二進表記した際の 2k2^k (k0k \geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。
例えば、3 \oplus 5 = 6 となります (二進表記すると: 011 \oplus 101 = 110)。
一般に k 個の非負整数 p_1, p_2, p_3, \dots, p_k のビット単位 \mathrm{XOR}(\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) と定義され、これは p_1, p_2, p_3, \dots, p_k の順番によらないことが証明できます。

制約

  • 1N10001 \leq N \leq 1000
  • 1K10121 \leq K \leq 10^{12}
  • 0Ai10000 \leq A_i \leq 1000
  • 与えられる入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN KK

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

Sample Input 1

2 2
10 30

Sample Output 1

40

XX として考えられるのは (X1,X2)=(1,1),(1,2),(2,1),(2,2)(X_1,X_2)=(1,1),(1,2),(2,1),(2,2)44 通りであり、それぞれに対する AX1+AX2A_{X_1}+A_{X_2}20,40,40,6020,40,40,60 です。よって答えは 20404060=4020 \oplus 40 \oplus 40 \oplus 60=40 となります。

Sample Input 2

4 10
0 0 0 0

Sample Output 2

0

Sample Input 3

11 998244353
314 159 265 358 979 323 846 264 338 327 950

Sample Output 3

236500026047