#include <bits/stdc++.h>
using namespace std;
vector<long long> arr;
long long n, k, a, b;
long long reccc(long long l, long long r) {
  long long c = lower_bound(arr.begin(), arr.end(), r) -
                lower_bound(arr.begin(), arr.end(), l);
  if (c == 0) {
    return a;
  }
  if (r == l + 1) {
    return b * c;
  }
  long long mid = (l + r) / 2;
  long long t1 = reccc(l, mid);
  long long t2 = reccc(mid, r);
  return min(b * (r - l) * c, t1 + t2);
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k >> a >> b;
  arr.resize(k);
  for (long long i = 0; i < k; i++) {
    cin >> arr[i];
    arr[i]--;
  }
  sort(arr.begin(), arr.end());
  cout << reccc(0, 1 << n) << endl;
}
