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