#include <bits/stdc++.h>
using namespace std;
const int MAXN = 35;
const long long INF = 0x3f3f3f3f3f3f3f3f;
int n, l;
long long c[MAXN];
int main() {
  scanf("%d%d", &n, &l);
  memset(c, 0x3f, sizeof c);
  for (int i = 0; i < n; i++) scanf("%lld", c + i);
  for (int i = 1; i <= 31; i++) c[i] = min(c[i], 2 * c[i - 1]);
  long long ans = 0;
  for (int i = 0; i <= 31; i++) {
    ans = min(ans, c[i]);
    if (l >> i & 1) ans += c[i];
  }
  printf("%lld\n", ans);
  return 0;
}
