#include <bits/stdc++.h>
using namespace std;
int getMaxUse(const vector<int> &a) {
  int mn = 1000000;
  for (int i = 0; i < ((int)((a).size())); i += 2) mn = min(mn, a[i]);
  return mn;
}
int main(int argc, char **argv) {
  if (argc > 1) freopen(argv[1], "r", stdin);
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  vector<int> a(n);
  for (int i = 0; i < (n); ++i) scanf("%d", &a[i]);
  if (n == 1)
    printf("%d\n", (int)min((long long)a[0], (long long)m * (long long)k));
  else if (n % 2 == 0 || m < n / 2 + 1)
    printf("0\n");
  else {
    int maxUse = getMaxUse(a);
    printf("%d\n",
           (int)min((long long)maxUse,
                    (long long)m / (long long)(n / 2 + 1) * (long long)k));
  }
  return 0;
}
