#include <bits/stdc++.h>
using namespace std;
const int INF = std::numeric_limits<int>::max() / 3;
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n, w;
  cin >> n >> w;
  vector<int> cups;
  for (int i = 0; i < n * 2; ++i) {
    int t;
    cin >> t;
    cups.push_back(t);
  }
  sort(cups.begin(), cups.end());
  double g_max = cups[0], b_max = cups[n];
  double lo = 0.0, hi = g_max;
  double ans = -1;
  for (int i = 0; i < 500; ++i) {
    double mid = (lo + hi) * 0.5;
    if (mid * (n) + mid * 2 * (n) > w) {
      hi = mid;
    } else if (2.0 * mid < b_max) {
      ans = mid;
      lo = mid;
    } else {
      hi = mid;
    }
  }
  printf("%lf\n", (ans * (n) + ans * 2 * (n)));
  return 0;
}
