#include <bits/stdc++.h>
using namespace std;
int n, k, A, B, a[200006];
long long ask(int l, int r) {
  long long ans;
  int mid = (l + r) / 2,
      num = upper_bound(a + 1, a + k + 1, r) - lower_bound(a + 1, a + k + 1, l);
  if (num == 0)
    return A;
  else
    ans = 1LL * B * num * (r - l + 1);
  return r - l ? min(ans, ask(l, mid) + ask(mid + 1, r)) : ans;
}
int main() {
  scanf("%d%d%d%d", &n, &k, &A, &B);
  for (int i = 1; i <= k; i++) scanf("%d", &a[i]);
  sort(a + 1, a + k + 1);
  printf("%lld\n", ask(1, 1 << n));
}
