#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
const long long INF = 1e18 + 5;
const double PI = acos(-1);
const int X[] = {1, -1, 0, 0};
const int Y[] = {0, 0, 1, -1};
const int mod = 1e9 + 7;
int n, k, a[N];
long long ans = INF, A, B;
long long rec(int l, int r) {
  long long pr = upper_bound(a + 1, a + k + 1, r) - a;
  long long pl = lower_bound(a + 1, a + k + 1, l) - a;
  long long cnt = pr - pl;
  if (cnt == 0) {
    return A;
  } else {
    if (l == r) {
      if (cnt) {
        return B * cnt;
      } else {
        return A;
      }
    }
  }
  long long md = (l + r) / 2;
  return min(rec(l, md) + rec(md + 1, r), cnt * (r - l + 1) * B);
}
int main() {
  cin >> n >> k >> A >> B;
  for (int i = 1; i <= k; i++) {
    cin >> a[i];
  }
  sort(a + 1, a + k + 1);
  cout << rec(1, (1 << n));
  return 0;
}
