#include <bits/stdc++.h>
using namespace std;
int main() {
  size_t n;
  int w;
  cin >> n >> w;
  vector<int> a(2 * n);
  for (auto& v : a) cin >> v;
  sort(a.begin(), a.end());
  double min_el = static_cast<double>(a[0]);
  double med_el = static_cast<double>(a[n]);
  double c = w / 3.0 / static_cast<double>(n);
  if (c <= min_el && (c * 2) <= med_el) {
    cout << w << endl;
    return 0;
  }
  double res = 0;
  if ((min_el * 2.0) <= med_el) {
    res = min_el * n * 3.0;
  }
  if ((med_el / 2.0) <= min_el) {
    res = max<double>(res, med_el * n * 1.5);
  }
  cout << fixed << setprecision(9) << res << endl;
  return 0;
}
