#include <bits/stdc++.h>
using namespace std;
constexpr int MAXK = 100000;
int n, k, A, B;
int a[MAXK + 2];
long long dp(int l, int r) {
  int num = distance(lower_bound(a, a + k, l), lower_bound(a, a + k, r));
  if (num == 0) return A;
  if (l + 1 == r) return (long long)num * B;
  int m = (l + r) / 2;
  return min((long long)(r - l) * num * B, dp(l, m) + dp(m, r));
}
int main() {
  cin >> n >> k >> A >> B;
  for (int i = 0; i < k; i++) {
    cin >> a[i];
    a[i]--;
  }
  sort(a, a + k);
  cout << dp(0, 1 << n) << endl;
}
