#include <bits/stdc++.h>
using namespace std;
long long n, k, a, b;
long long p2[33];
vector<long long> v;
long long sol(long long x, long long y) {
  auto up = upper_bound(v.begin(), v.end(), y);
  auto lo = lower_bound(v.begin(), v.end(), x);
  long long trt = up - lo;
  if (trt == 0) return a;
  if (y == x) {
    if (trt) return b * trt;
    return a;
  }
  long long len = y - x + 1;
  long long mid = len / 2 - 1;
  long long ch1 = sol(x, x + mid);
  long long ch2 = sol(x + mid + 1, y);
  return min(trt * len * b, ch1 + ch2);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  p2[0] = 1;
  for (int i = 1; i < 32; i++) {
    p2[i] = p2[i - 1] * 2;
  }
  cin >> n >> k >> a >> b;
  long long x;
  for (int i = 0; i < k; i++) {
    cin >> x;
    v.push_back(x);
  }
  sort(v.begin(), v.end());
  cout << sol(1, p2[n]) << endl;
  return 0;
}
