#include <bits/stdc++.h>
using namespace std;
void dprintf(char* format, ...) {
  fprintf(stderr, "DEBUG: ");
  va_list argp;
  va_start(argp, format);
  vfprintf(stderr, format, argp);
  va_end(argp);
  fprintf(stderr, "\n");
}
struct Exception {
  const char* message;
  const int line;
  Exception(const char* m, int l) : message(m), line(l) {}
};
static char stringReader[2097152];
static inline bool ReadLine() {
  char* ptr = fgets(stringReader, sizeof(stringReader), stdin);
  if (ptr == 0) return false;
  int N = strlen(stringReader);
  if (stringReader[N - 1] == '\n') stringReader[N - 1] = 0;
  return true;
}
const long long ooLL = 0x3f3f3f3f3f3f3f3fLL;
const int oo = 0x3f3f3f3f;
const double eps = 1e-9;
int main() {
  try {
    for (int n, m, k; scanf("%d%d%d ", &n, &m, &k) == 3;) {
      vector<int> r(n);
      for (int i = 0; i < n; ++i) scanf("%d", &r[i]);
      if (n % 2 == 0)
        printf("0\n");
      else {
        long long per_pass = m / ((n + 1) / 2);
        int lowest = r[0];
        for (int i = 2; i < n; i += 2) lowest = min(lowest, r[i]);
        long long sol = min((long long)lowest, per_pass * k);
        printf("%lld\n", sol);
      }
    }
    return 0;
  } catch (const Exception& exception) {
    fprintf(stderr, "******************************\n");
    fprintf(stderr, "ERROR.%d: %s\n", exception.line, exception.message);
    fprintf(stderr, "******************************\n");
    throw exception;
  }
}
