#include <bits/stdc++.h>
using namespace std;
const long long N = 2e5 + 5;
long long A[N];
bool check(long double mid, long long w, long long n) {
  if (n * mid + 2 * n * mid > w) return false;
  for (long long i = 0; i < n; i++) {
    if (mid > A[i]) return false;
  }
  for (long long i = n; i < 2 * n; i++) {
    if (2 * mid > A[i]) return false;
  }
  return true;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long n, w;
  cin >> n >> w;
  for (long long i = 0; i < 2 * n; i++) cin >> A[i];
  sort(A, A + 2 * n);
  long double low = 0, high = w;
  long double ans = 0;
  for (long long it = 0; it <= 200; it++) {
    long double mid = (low + high) / 2;
    if (check(mid, w, n)) {
      ans = max(ans, mid);
      low = mid + 0.00000001;
    } else
      high = mid - 0.00000001;
  }
  cout << fixed << setprecision(10) << (ans * n + ans * 2 * n) << "\n";
}
