#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;
}