#include <bits/stdc++.h>


using namespace std;

using ll = long long;
using pii = pair<int, int>;
const ll mod = 998244353;
const int maxn = 1e6 + 1;


int meetOd(int x1, int x2, int m) {
    return m - abs(x1 - x2) / 2;
}

int meetRL(int x1, int x2, int m) {
    if (x1 < x2) {
        return (x2 + x1) / 2;
    } else {
        int mx = max((x1 - 1), m - x2);
        x1 = mx - (x1 - 1) + 1;
        x2 = m - (mx - (m - x2));
        return (x1 + x2) / 2;
    }
}

int mt(int x1, int to, int m, char np) {
    if (np == 'L') {
        if (x1 > to) {
            return x1 - to;
        } else {
            return mt(1, to, m, 'R') + x1 - 1;
        }
    } else {
        if (x1 < to) {
            return to - x1;
        } else {
            return mt(m, to, m, 'L') + m - x1;
        }
    }
}


int get(int x1, int x2, char np1, char np2, int m) {
    if (np1 == np2) {
        return meetOd(x1, x2, m);
    } else {
        if (np1 == 'R') {
            return meetRL(x1, x2, m);
        } else {
            return meetRL(x2, x1, m);
        }
    }
}

int getPos(int x, char np, int m, int t) {
    if (np == 'R') {
        if (x - t >= 1) {
            return x - t;
        } else {
            return getPos(1, 'L', m, t - (x - 1));
        }
    } else {
        if (x + t <= m) {
            return x + t;
        } else {
            return getPos(m, 'R', m, t - (m - x));
        }
    }
}

 
signed main() {
#ifdef LOCAL
    freopen("input", "r", stdin);
#else
    ios::sync_with_stdio(0);
    cin.tie(0);
#endif
    int t;
    cin >> t;
    int n, m;
    cin >> n >> m;
    int cnt[2] = {0, 0};
    // vector<int> a(n);
    // for (int i = 0; i < n; i++) {
    //     cin >> a[i];
    //     cnt[a[i] % 2]++;
    // }
    // vector<char> np(n);
    // for (int i = 0; i < n; i++) {
    //     cin >> np[i];
    // }
    // // if (min(cnt[0], cnt[1]) > 0) {
    //     cout << "No" << endl;
    // } else {
    //     cout << "Yes" << endl;
    //     int mn = m;
    //     if (t >= 2) {
    //         mn = get(a[0], a[1], np[0], np[1], m);
    //         mn = get(mn, a[2], 'L', )
    //         cout << mn << endl;
    //     }
    // }
    int x1, x2;
    cin >> x1 >> x2;
    char np1, np2;
    cin >> np1 >> np2;
    if (x1 % 2 != x2 % 2 || (np1 == 'L' && np2 == 'L')) {
        cout << "No" << endl;
    } else {
        cout << "Yes" << endl;
        int gt;
        if (t >= 2) {
            if (np1 == np2) {
                gt = meetOd(x1, x2, m);
            } else {
                if (np1 == 'R') {
                    gt = meetRL(x1, x2, m);
                } else {
                    gt = meetRL(x2, x1, m);
                }
            }
            cout << gt << endl;
        }

        if (t >= 3) {
            if (gt == m) {
                cout << 0 << endl;
                return 0;
            }
            cout << 1 << endl;
            for (int tm = 0;; tm++) {
                if (getPos(x1, np1, m, tm) == gt && getPos(x2, np2, m, tm) == gt) {
                    cout << tm << " " << gt << endl;
                    return 0;
                }
            }
        }
    }
}