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