#include <bits/stdc++.h>
using namespace std;
int n, m, k;
long long num[200005], rig[200005], lef[200005];
int main() {
  scanf("%d%d%d", &n, &m, &k);
  long long tmp = 0;
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &num[i]);
  }
  int t = 1;
  while (m--) t *= k;
  for (int i = 1; i <= n; ++i) {
    rig[i] = rig[i - 1] | num[i];
  }
  for (int i = n; i >= 1; --i) {
    lef[i] = lef[i + 1] | num[i];
  }
  for (int i = 1; i <= n; ++i)
    tmp = max(tmp, num[i] * t | rig[i - 1] | lef[i + 1]);
  printf("%I64d", tmp);
  return 0;
}
