#include <bits/stdc++.h>
using namespace std;
#define infinity (1000000007)
#define ll long long
#define ull unsigned long long
#define pii pair<int,int>
#define ppi pair<pii,int>
#define ppp pair<pii,pii>
#define pip pair<int,pii>
#define pb push_back
#define mp make_pair
#define eps 1e-9
#define s(n) scanf("%d",&n)
#define s2(n,m) scanf("%d%d",&n,&m)
#define s3(n,m,l) scanf("%d%d%d",&n,&m,&l)
#define s4(n,m,l,x) scanf("%d%d%d%d",&n,&m,&l,&x)
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
ll pwr(ll a,ll b,ll mod) {a%=mod;if(a<0)a+=mod;ll ans=1; while(b) {if(b&1) ans=(ans*a)%mod; a=(a*a)%mod; b/=2; } return ans; }
ll pwr(ll a,ll b) {ll ans=1; while(b) {if(b&1) ans*=a; a*=a; b/=2; } return ans; }
ll gcd(ll a,ll b) {while(b) {ll temp=a; a=b; b=temp%b; } return a; }
ll lcm(ll a,ll b) {return (a/gcd(a,b))*b; }
string toString(int j){string s = "";while(j){int temp=j%10;s+=temp+'0';j=j/10;}reverse(s.begin(),s.end());return s;}
ll modularInverse(ll a,ll m) {/*reminder: make sure m is prime*/ assert(false); return pwr(a,m-2,m); }
const int mod=1000000007;
int n;
double k;
int a[2*100005];
bool possible(double x){
if(x<=a[1] && 2*x<=a[n+1])
return true;
return false;
}
int main(){
cin >> n >> k;
for(int i=1;i<=2*n;i++)
cin >> a[i];
sort(a+1,a+2*n+1);
double lo = 0.0,hi=(double)k/(double)(n*3),mid=0.0,ans=0.0;
while(fabs(hi-lo)>eps){
mid=(lo+hi)/2.0;
if(possible(mid)){
ans = mid;
lo = mid;
}
else hi=mid;
}
ans = 3*n*ans;
printf("%.6lf",ans);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW5maW5pdHkgKDEwMDAwMDAwMDcpCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgcHBpIHBhaXI8cGlpLGludD4KI2RlZmluZSBwcHAgcGFpcjxwaWkscGlpPgojZGVmaW5lIHBpcCBwYWlyPGludCxwaWk+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZXBzIDFlLTkKI2RlZmluZSBzKG4pIHNjYW5mKCIlZCIsJm4pCiNkZWZpbmUgczIobixtKSBzY2FuZigiJWQlZCIsJm4sJm0pCiNkZWZpbmUgczMobixtLGwpIHNjYW5mKCIlZCVkJWQiLCZuLCZtLCZsKQojZGVmaW5lIHM0KG4sbSxsLHgpIHNjYW5mKCIlZCVkJWQlZCIsJm4sJm0sJmwsJngpCiNkZWZpbmUgcmVwKGksbikgZm9yKGludCAoaSk9MDsoaSk8KGludCkobik7KysoaSkpCmxsIHB3cihsbCBhLGxsIGIsbGwgbW9kKSB7YSU9bW9kO2lmKGE8MClhKz1tb2Q7bGwgYW5zPTE7IHdoaWxlKGIpIHtpZihiJjEpIGFucz0oYW5zKmEpJW1vZDsgYT0oYSphKSVtb2Q7IGIvPTI7IH0gcmV0dXJuIGFuczsgfQpsbCBwd3IobGwgYSxsbCBiKSB7bGwgYW5zPTE7IHdoaWxlKGIpIHtpZihiJjEpIGFucyo9YTsgYSo9YTsgYi89MjsgfSByZXR1cm4gYW5zOyB9CmxsIGdjZChsbCBhLGxsIGIpIHt3aGlsZShiKSB7bGwgdGVtcD1hOyBhPWI7IGI9dGVtcCViOyB9IHJldHVybiBhOyB9CmxsIGxjbShsbCBhLGxsIGIpIHtyZXR1cm4gKGEvZ2NkKGEsYikpKmI7IH0Kc3RyaW5nIHRvU3RyaW5nKGludCBqKXtzdHJpbmcgcyA9ICIiO3doaWxlKGope2ludCB0ZW1wPWolMTA7cys9dGVtcCsnMCc7aj1qLzEwO31yZXZlcnNlKHMuYmVnaW4oKSxzLmVuZCgpKTtyZXR1cm4gczt9CmxsIG1vZHVsYXJJbnZlcnNlKGxsIGEsbGwgbSkgey8qcmVtaW5kZXI6IG1ha2Ugc3VyZSBtIGlzIHByaW1lKi8gYXNzZXJ0KGZhbHNlKTsgcmV0dXJuIHB3cihhLG0tMixtKTsgfQpjb25zdCBpbnQgbW9kPTEwMDAwMDAwMDc7CgppbnQgbjsKZG91YmxlIGs7CmludCBhWzIqMTAwMDA1XTsKCmJvb2wgcG9zc2libGUoZG91YmxlIHgpewoJCglpZih4PD1hWzFdICYmIDIqeDw9YVtuKzFdKQoJCXJldHVybiB0cnVlOwoJcmV0dXJuIGZhbHNlOwp9CgppbnQgbWFpbigpewoJCgljaW4gPj4gIG4gPj4gazsKCglmb3IoaW50IGk9MTtpPD0yKm47aSsrKQoJCWNpbiA+PiBhW2ldOwoJCglzb3J0KGErMSxhKzIqbisxKTsKCglkb3VibGUgbG8gPSAwLjAsaGk9KGRvdWJsZSlrLyhkb3VibGUpKG4qMyksbWlkPTAuMCxhbnM9MC4wOwoKCXdoaWxlKGZhYnMoaGktbG8pPmVwcyl7CgkJbWlkPShsbytoaSkvMi4wOwoKCQlpZihwb3NzaWJsZShtaWQpKXsKCQkJYW5zID0gbWlkOwoJCQlsbyA9IG1pZDsKCQl9CgkJZWxzZSBoaT1taWQ7Cgl9CgoJYW5zID0gMypuKmFuczsKCXByaW50ZigiJS42bGYiLGFucyk7CgoKCQoKCgoKCglyZXR1cm4gMDsKfQ==