#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
using ii = pair<int, int>;
using vii = vector<ii>;
using l = long long;
using vl = vector<l>;
using vvl = vector<vl>;
using ll = pair<l, l>;
using vll = vector<ll>;
using vvll = vector<vll>;
using lu = unsigned long long;
using vb = vector<bool>;
using vvb = vector<vb>;
using vd = vector<double>;
using vvd = vector<vd>;
const int INF = numeric_limits<int>::max();
const double EPS = 1e-10;
const l e5 = 100000, e6 = 1000000, e7 = 10000000, e9 = 1000000000;
const bool enable_log = false;
struct VoidStream {
  void operator&(std::ostream&) {}
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  l n, m, k;
  while (cin >> n >> m >> k) {
    l min_odd = INF;
    for (l i = 0; i < n; i++) {
      l x;
      cin >> x;
      if (i % 2 == 0) min_odd = min(min_odd, x);
    }
    if (n % 2 == 0) min_odd = 0;
    cout << min(min_odd, k * (m / (n / 2 + 1))) << endl;
  }
}
