#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<math.h>
#include<string>
#include <iomanip>

typedef long long ll;
typedef unsigned long long ull;
const ll LINF = 1e18;
const int INF = 1e8;

using namespace std;


//マクロ定義
#define vvint(vec,n,m,l) vector<vector<int>> vec(n, vector<int>(m,l));	// lで初期化
#define vvll(vec,n,m,l) vector<vector<ll>> vec(n,vector<ll>(m,l));
#define vint vector<int>
#define pint pair<int,int>
#define rep(i,a) for(int i=0;i<(a);i++)
#define all(x) (x).begin(),(x).end()ss		
#define debug system("pause")				//デバッグ用



int main(void)
{
	cin.tie(0);
	ios::sync_with_stdio(false);

	int n, a, b, c, d;
	cin >> n >> a >> b >> c >> d;

	a = a - 1;
	b = b - 1;
	c = c - 1;
	d = d - 1;

	string s;
	cin >> s;
	s.push_back('#');
	s.push_back('#');

	s[a] = '#';
	s[b] = '#';

	bool fl = true;
	bool setti = false;
	bool ansA = false;
	bool ansB = false;

	if (d < c)
	{
		while (!ansA && fl)
		{
			if (s[a + 1] == '#')
			{
				if (s[a + 2] == '#')
				{
					if (a + 1 == b)
					{
						while (!setti && !(c < b) && !(d<=b) && !ansB)
						{
							if (s[b + 1] == '.')
							{
								s[b] = '.';
								s[b + 1] = '#';
								b += 1;
							}
							else if (s[b + 2] == '#')
							{
								fl = false;
								break;
							}
							else
							{
								s[b] = '.';
								s[b + 2] = '#';
								b += 2;
							}
							if (s[b - 1] == '.' && s[b + 1] == '.')
							{
								setti = true;
							}
							if (d <= b)
							{
								if (b == d)
								{
									ansB = true;
									b = -1;
								}
								else
								{
									fl = false;
									break;
								}
							}


						}
					}
					else if (a + 2 == b)
					{
						while (!setti && !(c < b) && !(d<=b) && !ansB)
						{
							if (s[b + 1] == '.')
							{
								s[b] = '.';
								s[b + 1] = '#';
								b += 1;
							}
							else if (s[b + 2] == '#')
							{
								fl = false;
								break;
							}
							else
							{
								s[b] = '.';
								s[b + 2] = '#';
								b += 2;
							}
							if (s[b - 1] == '.' && s[b + 1] == '.')
							{
								setti = true;
							}
							if (d <= b)
							{
								if (b == d)
								{
									ansB = true;
									setti = true;
									b = -1;
								}
								else
								{
									fl = false;
									break;
								}
							}

						}
					}
					else
					{
						fl = false;
					}
				}
				else
				{
					s[a] = '.';
					s[a + 2] = '#';
					a = a + 2;
					if (a == c)
					{
						ansA = true;
					}
				}
			}
			else
			{
				s[a + 1] = '#';
				s[a] = '.';
				a = a + 1;

				if (a == c)
				{
					ansA = true;
				}
			}
		}
	}
	else
	{
		while (!ansB && fl)
		{
			if (s[b + 1] == '#')
			{
				if (s[b + 2] == '#')
				{
					if (b + 1 == a)
					{
						while (!setti && !(d < a) && !(c<=a) && !ansA)
						{
							if (s[a + 1] == '.')
							{
								s[a] = '.';
								s[a + 1] = '#';
								a += 1;
							}
							else if (s[a + 2] == '#')
							{
								fl = false;
								break;
							}
							else
							{
								s[a] = '.';
								s[a + 2] = '#';
								a += 2;
							}
							if (s[a - 1] == '.' && s[a + 1] == '.')
							{
								setti = true;
							}
							if (a <= c)
							{
								if (a == c)
								{
									ansA = true;
									a = -1;
								}
								else
								{
									fl = false;
									break;
								}
							}

						}
					}
					else if (b + 2 == a)
					{
						while (!setti && !(d < a) && !(c<=a) && !ansA)
						{
							if (s[a + 1] == '.')
							{
								s[a] = '.';
								s[a + 1] = '#';
								a += 1;
							}
							else if (s[a + 2] == '#')
							{
								fl = false;
								break;
							}
							else
							{
								s[a] = '.';
								s[a + 2] = '#';
								a += 2;
							}
							if (s[a - 1] == '.' && s[a + 1] == '.')
							{
								setti = true;
							}
							if (c<= a)
							{
								if (a == c)
								{
									ansA = true;
									a = -1;
								}
								else
								{
									fl = false;
									break;
								}
							}

						}
					}
					else
					{
						fl = false;
					}
				}
				else
				{
					s[b + 2] = '#';
					s[b] = '.';
					b = b + 2;
					if (b == d)
					{
						ansB = true;
					}
				}
			}
			else
			{
				s[b + 1] = '#';
				s[b] = '.';
				b = b + 1;
				if (b == d)
				{
					ansB = true;
				}
			}
		}
	}
	if (d < c && fl)
	{
		while (!ansB && fl)
		{
			if (s[b + 1] == '#')
			{
				if (s[b + 2] == '#')
				{
					fl = false;
				}
				else
				{
					s[b] = '.';
					s[b + 2] = '#';
					b = b + 2;

					if (b == d)
					{
						ansB = true;
					}
				}
			}
			else
			{
				s[b + 1] = '#';
				s[b] = '.';
				b = b + 1;

				if (b == d)
				{
					ansB = true;
				}
			}
		}
	}
	else if (fl)
	{
		while (!ansA && fl)
		{
			if (s[a + 1] == '#')
			{
				if (s[a + 2] == '#')
				{
					fl = false;
				}
				else
				{
					s[a + 2] = '#';
					s[a] = '.';
					a = a + 2;

					if (a == c)
					{
						ansA = true;
					}
				}
			}
			else
			{
				s[a + 1] = '#';
				s[a] = '.';
				a = a + 1;

				if (a == c)
				{
					ansA = true;
				}
			}
		}
	}

	if (fl)
	{
		cout << "Yes" << endl;
	}
	else
	{
		cout << "No" << endl;
	}

}

Measured memory_bytes: 640