#include <bits/stdc++.h>
using namespace std;
vector<long long> v;
long long a, b;
long long solve(long long l, long long r) {
  long long c1 = upper_bound(v.begin(), v.end(), r) - v.begin();
  long long c2 = lower_bound(v.begin(), v.end(), l) - v.begin();
  long long cnt = c1 - c2;
  if (cnt == 0) return a;
  if (l == r) return b * cnt;
  long long mid = (l + r) / 2;
  c1 = solve(l, mid);
  c2 = solve(mid + 1, r);
  return min(b * cnt * (r - l + 1), c1 + c2);
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, k;
  cin >> n >> k >> a >> b;
  for (long long i = 0; i < k; i++) {
    long long x;
    cin >> x;
    v.push_back(x);
  }
  sort(v.begin(), v.end());
  long long cnt = pow(2, n);
  cout << solve(1, cnt) << endl;
}
