#include <bits/stdc++.h>
void sort(float *a, int len) {
  if (len == 1) return;
  int hl = len / 2;
  float *b = (float *)malloc(sizeof(float) * hl);
  float *c = (float *)malloc(sizeof(float) * (len - hl));
  memcpy(b, a, sizeof(float) * hl);
  memcpy(c, a + hl, sizeof(float) * (len - hl));
  sort(b, hl);
  sort(c, len - hl);
  int x = 0, l = 0, r = 0, L = hl, R = len - hl;
  while (l < L && r < R) {
    if (b[l] < c[r])
      a[x++] = b[l++];
    else
      a[x++] = c[r++];
  }
  int y;
  for (y = l; y < L; y++) {
    a[x++] = b[l++];
  }
  for (y = r; y < R; y++) {
    a[x++] = c[r++];
  }
}
int main() {
  int n, x, y, tmp;
  float w, a[200002];
  int z;
  scanf("%d %f", &n, &w);
  for (x = 0; x < 2 * n; x++) {
    scanf("%f", a + x);
  }
  sort(a, 2 * n);
  float c, d;
  c = a[0], d = a[n] / 2;
  if (c > d) c = d;
  c *= 3 * n;
  if (c > w) c = w;
  printf("%f\n", c);
}
