// editor3
#include<stdio.h>
struct TreeNode{
    int data;
}Node;
int main(){
    int N,L;
    if(!scanf("%d",&N) ||N<0){
        printf("Invalid input");
        return 0;
    }
    if(!scanf("%d",&L) || L<=0 || L>N){
        printf("Invalid input");
        return 0;
    }
    Node tree[N];
    for(int i=0;i<N;i++){
        if (scanf("%d", &tree[i].data) != 1) {
            printf("Invalid input");
            return 0;
        }
    }
     int sum = 0;
    int level = 0;
    int nodes = 1;   // nodes in current level
    int count = 0;
    for (int i = 0; i < N; i++) {

        if (level <= L)
            sum += tree[i].data;

        count++;

        if (count == nodes) {
            level++;
            nodes *= 2;
            count = 0;
        }
    }

    printf("%d", sum);
    return 0;

    
}