#Y5. 或

或

或

题目描述

给定一个长度为 nn 的序列 aa,你可以对其进行 kk 次操作,每次操作你可以将 aa 中的一个数乘上 xx。求做完操作后 a1∣a2∣...∣ana_1 | a_2 | ... | a_n 的最大值。

其中 “∣|” 表示 按位或。

将数 a,ba, b 按位或定义如下:

在 22 进制下,结果的第 kk 位为 11,当且仅当 aa 或 bb 的第 kk 位为 11。

如 5∣10=155 | 10 = 15(在二进制下,101∣1010=1111101 | 1010 = 1111)。

输入格式

第一行三个整数 n,k,xn, k, x。
第二行 nn 个整数 aia_i。

样例 #1

样例输入 #1

4 2 3
1 2 4 8

样例输出 #1

79

提示

本题输入可参考下列方式实现:

n, k, x = map(int, input().split())
a = list(map(int,input().split()))

数据范围

$1 \le n \le 10^5, 2 \le k \le 10, 1 \le x \le 8, 0 \le a_i \le 10^9$。

本题时限为 std 的 44 倍以上。