import java.util.*

const val MOD: Long = (1e9+7).toLong()
fun Double.format(digits: Int) = String.format("%.${digits}f", this)
fun <T : Comparable<T>> Iterable<T>.argmax(): Int? = withIndex().maxBy{it.value}?.index
fun <T : Comparable<T>> Iterable<T>.argmin(): Int? = withIndex().minBy{it.value}?.index

fun main(args: Array<String>) {
    val reader = System.`in`.bufferedReader()
    var (n, a, b, c, d) = reader.readLine()!!.split(" ").map{it.toInt()}
    val s = reader.readLine()!!

    if (c < d) {
        if (s.take(d).drop(b-1).contains("##")) {
            println("No")
        } else {
            if (s.take(c).drop(a-1).contains("##")) {
                println("No")
            } else {
                println("Yes")
            }
        }

        return
    }

    if (b > 1) {
        if (!s.take(d+1).drop(b-2).contains("...")) {
            println("No")
        } else {
            if (s.take(c).drop(a-1).contains("##")) {
                println("No")
            } else {
                if (s.take(d).drop(b-1).contains("##")) {
                    println("No")
                } else {
                    println("Yes")
                }
            }
        }
    } else {
        if (!s.take(d+1).drop(b-1).contains("...")) {
            println("No")
        } else {
            if (s.take(c).drop(a-1).contains("##")) {
                println("No")
            } else {
                if (s.take(d).drop(b-1).contains("##")) {
                    println("No")
                } else {
                    println("Yes")
                }
            }
        }
    }
}
