#include <bits/stdc++.h>
using namespace std;
vector<int> avengers;
unsigned long long n, k, a, b, pos;
unsigned long long solve(unsigned long long l, unsigned long long h) {
  unsigned long long i =
      lower_bound(avengers.begin(), avengers.end(), l) - avengers.begin();
  unsigned long long j =
      upper_bound(avengers.begin(), avengers.end(), h) - avengers.begin();
  unsigned long long mid = (l + h) / 2;
  unsigned long long power;
  unsigned long long x = j - i;
  if (x) {
    power = b * x * (h - l + 1);
  } else
    power = a;
  if (l == h || x == 0)
    return power;
  else
    return min(power, solve(l, mid) + solve(mid + 1, h));
}
int main() {
  cin >> n >> k >> a >> b;
  for (unsigned long long i = 0; i < k; ++i) {
    cin >> pos;
    avengers.push_back(pos);
  }
  sort(avengers.begin(), avengers.end());
  cout << solve(1, pow(2, n)) << endl;
}
