//找出最大替换数max,比较最大替换数max和n进行对应输出
//考虑中间元素,连续三个0可以把中间的0替换为1,并max++
//考虑metrik[0],如果metrik[0]==0且metrik[1]==0,metrik[0]可以替换为1,并max++
//考虑metrik[m-1](最后一个元素),metrix[m-1-1]==0且metrix[m-1]==0,metrix[m-1]可以替换为1,并max++
#include <stdio.h>
int main() {
    int m, n, max = 0;
    scanf("%d", &m);
    int metrix[m];
    for(int i=0; i<m; i++){
        scanf("%d", &metrix[i]);
    }
    scanf("%d", &n);//基础读取输入
    int k = 0;
    if(metrix[k]==0 && metrix[k+1] == 0){//考虑metrik[0]
        metrix[k] = 1;
            max++;
    }
    for(int j=1; j<m-1; j++){//考虑中间元素
        if(metrix[j-1]==0 && metrix[j]==0 && metrix[j+1] == 0){
            metrix[j] = 1;
            max++;
        }
    }
    k = m - 1;//考虑metrik[m-1](最后一个元素)
    if(metrix[k-1]==0 && metrix[k]==0){
        metrix[k] = 1;
            max++;
    }
    if(n <= max){//比较最大替换数max和n
        printf("true");
    }
    else{
        printf("false");
    }
    return 0;
}