#include<bits/stdc++.h>
using namespace std;

using ll=long long;
using ull=unsigned long long;
using i128=__int128_t;
using u128=__uint128_t;
using ld=long double;

void solve()
{
	int n,m;
	cin >> n;
	vector<int>v(n,0);
	for(int i=0;i<n;i++) cin >> v[i];
	cin >> m;
	int sum=0;
	for(int i=0,j=0;i<n&&j<n;)//双指针扫一遍 找出大于3的连续是0的段的可容纳1的长度和
	{
		if(v[j]==0) j++;
		if(v[j]==1)
		{
			if((j-i)%2==0)//注意奇偶可容纳的1的数量不同
			{
				sum+=j-i>=3?(j-i)/2-1:0;
				j=i=j+1;
			}
			else
			{
				sum+=j-i>=3?(j-i)/2:0;
				j=i=j+1;
			}
		}
		if(v[j]==0&&j==n-1) sum+=j-i>=3?(j-i)/2:0;//特判结尾 因为结尾有可能不是1
	}
	if(sum>=m) cout << "true";
	else cout << "false";
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int t=1;
	//cin >> t;
	
	while(t--)
	{
		solve();
	}
	return 0;
}