#include <bits/stdc++.h>
using namespace std;
long long A, b;
vector<long long> a;
long long sol(long long l, long long r) {
  long long p = lower_bound(a.begin(), a.end(), l) - a.begin();
  long long q = upper_bound(a.begin(), a.end(), r) - a.begin();
  --q;
  long long k;
  if (p > q)
    return A;
  else
    k = b * (q - p + 1) * (r - l + 1);
  if (l == r) return k;
  long long mid = (r + l) / 2;
  return min(k, sol(l, mid) + sol(mid + 1, r));
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long n, k;
  cin >> n >> k >> A >> b;
  a = vector<long long>(k);
  for (long long i = 0; i < k; ++i) cin >> a[i];
  sort(a.begin(), a.end());
  cout << sol(1, 1 << n) << '\n';
}
