#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 30;
unsigned long long n, k, x;
unsigned long long a[300000];
unsigned long long dpL[300000];
unsigned long long dpR[300000];
int main() {
  int i, j;
  cin >> n >> k >> x;
  unsigned long long s = 0, MAX = 0;
  for (i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (i = 0; i < n - 1; i++) {
    dpL[i + 1] = dpL[i] | a[i];
  }
  for (i = n - 1; i > 0; i--) {
    dpR[i - 1] = dpR[i] | a[i];
  }
  unsigned long long ans1 = a[0], ans2 = a[n - 1];
  for (i = 0; i < k; i++) {
    ans1 = ans1 * x;
    ans2 = ans2 * x;
  }
  unsigned long long ans = max(ans1 | dpR[0], ans2 | dpL[n - 1]);
  for (i = 1; i < n - 1; i++) {
    unsigned long long ANS = a[i];
    for (j = 0; j < k; j++) {
      ANS *= x;
    }
    ans = max(ans, ANS | dpL[i] | dpR[i]);
  }
  cout << ans << endl;
  return 0;
}
