#include <bits/types/time_t.h>
#include <iostream>
using namespace std;
int main() {
int n, m, k, d, t;
cin >> n >> m >> k >> d;
if (d == 0)d = -1;
string s;
cin >> s;
auto sismove=[&]()
{
if(k==1)d=1;
else if(k==n)d=-1;
k+=d;
};
auto bromove=[&]()
{
if(m>k)m=n;
else m=1;
};
auto run = [&]() {
if(t>=s.size())return;
while(t<s.size())
{
// ++t;
if(s[t]=='1')
{
sismove();
m=k-d;//opposite dir
}
else
{
bromove();
sismove();
if(m==k)return;
}
++t;
// printf("t:%d,m:%d,k:%d,d:%d\n",t,m,k,d);
}
};
run();
if (t < s.size()) {
cout << "No" << endl;
cout << t+1 << endl;
} else
cout << "Yes" << endl;
return 0;
}
// 64 位输出请用 printf("%lld")