n,a,b,c,d = gets.split.map(&:to_i)
s = gets.chomp.split('').map{|t| t=='.'}
len = s.size

min = [c,d].min
max = [c,d].max

dou = (len-1).times.map{|i| s[i]||s[i+1]}
(a-1).upto(len-3){|i| dou[i+1] = false if !dou[i]}

revf =  d < c

revc = (len-2).times.map{|i| !(!s[i]||!s[i+1]||!s[i+2])}
(b-1).upto(len-4){|i| revc[i+1] = true if revc[i]}

ans = true
#岩二個
if !dou[max-2]
  ans = false
end

#入れ替わる&&入れ替われる場所じゃない
if (revf && !revc[min-2])
  ans = false
end

puts (ans)? "Yes" : "No"