#include <iostream>
#include <vector>
using namespace std;

int main() {
    int m;
    cin >> m;
    vector<int> metrix(m);
    for (int i = 0; i < m; ++i) {
        cin >> metrix[i];
    }
    int n;
    cin >> n;

    int can_place = 0;  // 记录最多能放几个1

    for (int i = 0; i < m; ++i) {
        if (metrix[i] == 0) {
            int left = (i == 0) ? 0 : metrix[i - 1];
            int right = (i == m - 1) ? 0 : metrix[i + 1];//简单处理边界

            if (left == 0 && right == 0) {
                metrix[i] = 1;  // 放一个1
                can_place++;
                if (can_place >= n) break;  // 已经够了,break
            }
        }
    }
    /*贪心(Greedy)算法的核心原则是:每一步都做当前看来最优的选择,不回头,期望整体也是最优的。
    🎯 贪心策略是:只要当前位置左右都不是 1,就把 0 变成 1,立即放!

        为什么这样做是对的?
        因为一旦你错过这个位置,往后再放就会错过一次机会(相邻了)。
        提前放保证了“最多能放多少”,这是我们要的目标。
    */

    cout << (can_place >= n ? "true" : "false") << endl;
    return 0;
}