#include <bits/stdc++.h>
using namespace std;
const int64_t MOD = 1e9 + 7;
const int64_t N = 1e5 + 3;
vector<int64_t> a;
int64_t A, B, n, k;
int64_t rec(int64_t l, int64_t r, int64_t cnt) {
  if (cnt == 0) return A;
  if (l == r) return B * cnt;
  int64_t m = (l + r) >> 1;
  int64_t cntl = lower_bound(a.begin(), a.end(), m + 1) -
                 lower_bound(a.begin(), a.end(), l);
  return min(B * cnt * (r - l + 1),
             rec(l, m, cntl) + rec(m + 1, r, cnt - cntl));
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k >> A >> B;
  for (int64_t i = 0; i < k; i++) {
    int64_t x;
    cin >> x;
    a.push_back(x);
  }
  sort(a.begin(), a.end());
  cout << rec(1, 1 << n, k);
}
