function Main(input) {
    var result;
    const N = parseInt(input.shift())
    const A = parseInt(input.shift())
    const B = parseInt(input.shift());
    const C = parseInt(input.shift())
    const D = parseInt(input.shift())
    const S = input[0];
    
    // 2連続があったらOUT
    const LastIndex = Math.max(C,D);
    var prevStone = false;
    for (var i = A -1; i < LastIndex; i++) {
        var element = S.charAt(i);
        if(element === "#") {
            if(prevStone) {
                console.log("No");
                return;
            }
        }
        prevStone = element === "#";
    }
    
    // 追い越す必要があるとき
    if(C > D) {
        var spaceCount = 0;
        for (var i = B - 2; i < C + 1; i++) {
            var elem = S.charAt(i);
            if(elem === ".") {
                spaceCount++;
            } else {
                spaceCount = 0;
            }
            if(spaceCount == 3){
                console.log('Yes');
                return;
            }
        }
        console.log("No");
    } else {
        console.log("Yes");
    }
}

// 1行入力の場合
// Main(require("fs").readFileSync("/dev/stdin", "utf8").trim());

// 改行で分割
// Main(require("fs").readFileSync("/dev/stdin", "utf8").trim().split(/\n/));

// 改行・空白で分割
Main(require("fs").readFileSync("/dev/stdin", "utf8").trim().split(/\n|\s/));