#include <bits/stdc++.h>
using namespace std;
int main(int argc, char* argv[]) {
  long long n, m, k;
  vector<int> data;
  cin >> n >> m >> k;
  for (int i = 0; i < (int)(n); ++i) {
    int d;
    cin >> d;
    data.push_back(d);
  }
  if (n == 1) {
    cout << min<long long>(data[0], m * k);
    return 0;
  }
  if ((data.size() & 1) == 0) {
    cout << 0;
    return 0;
  }
  int f = data[0];
  for (int i = 0; i < data.size(); i += 2) f = min(f, data[i]);
  int heap_size = f;
  int movements = (n + 1) / 2;
  int stealings_per_move = m / movements;
  if (stealings_per_move * k >= heap_size) {
    cout << heap_size;
    return 0;
  } else {
    cout << (stealings_per_move * k);
    return 0;
  }
  int temp;
  std::cin >> temp;
}
