You are given *n* numbers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub>. You can perform at most *k* operations. For each operation you can multiply one of the numbers by *x*. We want to make <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/1faa5be276f646dfb07d2a01bf67449ad72c0ef7.png" style="max-width: 100.0%;max-height: 100.0%;"/> as large as possible, where <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/ddbf6923ea3f08cb83b08ed026f40a80751dff3f.png" style="max-width: 100.0%;max-height: 100.0%;"/> denotes the bitwise OR. 

Find the maximum possible value of <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/1faa5be276f646dfb07d2a01bf67449ad72c0ef7.png" style="max-width: 100.0%;max-height: 100.0%;"/> after performing at most *k* operations optimally.
The first line contains three integers *n*, *k* and *x* (1 ≤ *n* ≤ 200 000, 1 ≤ *k* ≤ 10, 2 ≤ *x* ≤ 8).

The second line contains *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
def pw(a, x, k):
    if a == 0:
        return 0;
    ans = a;
    while (k > 0):
        ans *= x;
        k = k - 1;
    return ans;
n, k, x = map(int, input().split());
a = list(map(int, input().split()));
lft = [];
lft.append(0);
for val in a:
    lft.append(val);
lft.append(0);
rht = [];
for val in lft:
    rht.append(val);
for i in range(1, len(lft)):
    lft[i] = lft[i] | lft[i - 1];
#print (lft);
for i in range(len(rht) - 2, -1, -1):
    rht[i] = rht[i] | rht[i + 1];
#print (rht);
ans = 0;
for i in range (1, len(lft) - 1):
    if(ans < (lft[i - 1] | pw(a[i - 1], x, k) | rht[i + 1])):
        ans = lft[i - 1] | pw(a[i - 1], x, k) | rht[i + 1];
print (ans);
