#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")