n,a,b,c,d=map(int, input().split())
s=list(input())

if d>c:
  #B→Aの順番でチェック
  for i in range(b-1,d-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()

  for i in range(a-1,c-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()
  #問題なければ終了
  print("Yes")

else:
  flag=False
  #BからDの間に3マス連続で空きがあるかチェック（AがBを抜かせるかどうか）
  for i in range(b-2, d-1):
    if "".join(s[i:i+3])=="...":
      flag=True
      break
  #抜かせる
  if flag:
    for i in range(a-1,c-3):
      if "".join(s[i:i+2])=="##":
        print("No")
        exit()
    print("Yes")
  #抜かせない
  else:
    print("No") n,a,b,c,d=map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split a b c d s=list(input()) s list(input()) list input() input if d>c:
  #B→Aの順番でチェック
  for i in range(b-1,d-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()

  for i in range(a-1,c-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()
  #問題なければ終了
  print("Yes")

else:
  flag=False
  #BからDの間に3マス連続で空きがあるかチェック（AがBを抜かせるかどうか）
  for i in range(b-2, d-1):
    if "".join(s[i:i+3])=="...":
      flag=True
      break
  #抜かせる
  if flag:
    for i in range(a-1,c-3):
      if "".join(s[i:i+2])=="##":
        print("No")
        exit()
    print("Yes")
  #抜かせない
  else:
    print("No") d>c d c for i in range(b-1,d-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()

   i range(b-1,d-3) range b-1 b 1 d-3 d 3 if "".join(s[i:i+2])=="##":
      print("No")
      exit()

   "".join(s[i:i+2])=="##" "".join(s[i:i+2]) "".join "" join s[i:i+2] s i:i+2 i i+2 i 2 "##" print("No") print "No" exit() exit for i in range(a-1,c-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()
  #問題なければ終了
   i range(a-1,c-3) range a-1 a 1 c-3 c 3 if "".join(s[i:i+2])=="##":
      print("No")
      exit()
  #問題なければ終了
   "".join(s[i:i+2])=="##" "".join(s[i:i+2]) "".join "" join s[i:i+2] s i:i+2 i i+2 i 2 "##" print("No") print "No" exit() exit print("Yes") print "Yes" flag=False flag False for i in range(b-2, d-1):
    if "".join(s[i:i+3])=="...":
      flag=True
      break
  #抜かせる
   i range(b-2, d-1) range b-2 b 2 d-1 d 1 if "".join(s[i:i+3])=="...":
      flag=True
      break
  #抜かせる
   "".join(s[i:i+3])=="..." "".join(s[i:i+3]) "".join "" join s[i:i+3] s i:i+3 i i+3 i 3 "..." flag=True flag True break if flag:
    for i in range(a-1,c-3):
      if "".join(s[i:i+2])=="##":
        print("No")
        exit()
    print("Yes")
  #抜かせない
  else:
    print("No") flag for i in range(a-1,c-3):
      if "".join(s[i:i+2])=="##":
        print("No")
        exit()
     i range(a-1,c-3) range a-1 a 1 c-3 c 3 if "".join(s[i:i+2])=="##":
        print("No")
        exit()
     "".join(s[i:i+2])=="##" "".join(s[i:i+2]) "".join "" join s[i:i+2] s i:i+2 i i+2 i 2 "##" print("No") print "No" exit() exit print("Yes") print "Yes" print("No") print "No" b,c,d=map(int, input().split()) map(int, input().split()) b d=map(int, input().split()) map(int, input().split()) d flag=True True flag n,a,b,c,d=map(int, input().split()) map(int, input().split()) n a,b,c,d=map(int, input().split()) map(int, input().split()) a s=list(input()) list(input()) s c,d=map(int, input().split()) map(int, input().split()) c flag=False False flag
n,a,b,c,d=map(int, input().split())
s=list(input())

if d>c:
  #B→Aの順番でチェック
  for i in range(b-1,d-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()

  for i in range(a-1,c-3):
    if "".join(s[i:i+2])=="##":
      print("No")
      exit()
  #問題なければ終了
  print("Yes")

else:
  flag=False
  #BからDの間に3マス連続で空きがあるかチェック（AがBを抜かせるかどうか）
  for i in range(b-2, d-1):
    if "".join(s[i:i+3])=="...":
      flag=True
      break
  #抜かせる
  if flag:
    for i in range(a-1,c-3):
      if "".join(s[i:i+2])=="##":
        print("No")
        exit()
    print("Yes")
  #抜かせない
  else:
    print("No")