#include <bits/stdc++.h>
using namespace std;
map<double, bool> my;
int main() {
  long long int i, n;
  double sum1, sum2, w, add, sum, mid, lo, hi, tar, cur, cur1, ans, tt;
  cin >> n >> w;
  double arr[n * 2 + 10];
  ans = 0;
  tar = 1000000000000;
  for (i = 0; i < n * 2; i++) {
    scanf("%lf", &arr[i]);
    if (tar > arr[i]) tar = arr[i];
  }
  sort(arr, arr + (2 * n));
  tt = 1000000000000;
  for (i = n; i < 2 * n; i++) {
    if (tt > arr[i]) {
      tt = arr[i];
    }
  }
  bool f;
  mid = tar;
  lo = 0;
  hi = w;
  while (hi > lo) {
    mid = lo + hi;
    mid = mid / (double)2;
    cur = cur - mid;
    if (cur < 0) cur = -cur;
    if (cur < .000000000000001) break;
    cur = mid;
    cur1 = 2 * cur;
    f = 1;
    sum = 0;
    if (cur > tar) f = 0;
    if (cur1 > tt) f = 0;
    if (f) {
      sum1 = n * cur;
      sum2 = n * cur1;
      sum = sum1 + sum2;
      if (sum <= w) ans = max(ans, sum);
    }
    if (sum <= w and f)
      lo = mid;
    else if (sum > w || !f)
      hi = mid;
  }
  printf("%.9lf", ans);
  return 0;
}
