#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
int n,sum=1;
struct str{string s;int sn;};
str a[1000005];
int main(){
	//freopen("doorplate.in","r",stdin);
	//freopen("doorplate.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n;
	for(int i=1;i<=n;i++){
		cin >> a[i].sn;
		
		
	}
	for(int i=1;i<=n;i++){
		if(a[i].sn!=a[i-1].sn)sum++;
	}
	cout << sum;
	return 0;
}
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
int n,m,sr,sc,sum,ex,ey;
char a[1005][1005];
string s;
void dfs(int x,int y,int st){
	if(x>=n||x<=0||y>=m||y<=0)return ;
	if(st>s.size()){
		ex=x;ey=y;
		return ;
	}
	
	if(s[st]=='R'){
		if(a[x][y+1]=='#'){
			dfs(x,y,st+1);
		}
		else if(a[x][y+1]=='.'){
			sum++;
			a[x][y+1]='x';
			dfs(x,y+1,st+1);
		}
		
	}
	else if (s[st]=='L'){
		if(a[x][y-1]=='#'){
			dfs(x,y,st+1);
		}
		else if(a[x][y-1]=='.'){
			sum++;
			a[x][y-1]='x';
			dfs(x,y-1,st+1);
		}
		
	}
	else if(s[st]=='U'){
		if(a[x-1][y]=='#'){
			dfs(x,y,st+1);
		}
		else if(a[x-1][y]=='.'){
			sum++;
			a[x-1][y]='x';
			dfs(x-1,y,st+1);
		}
	}
	else if (s[st]=='D'){
		if(a[x+1][y]=='#'){
			dfs(x,y,st+1);
		}
		else if(a[x+1][y]=='.'){
			sum++;
			a[x+1][y]='x';
			dfs(x+1,y,st+1);
		}
	}
}
int main(){
	//freopen("robot.in","r",stdin);
	//freopen("robot.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n >> m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin >> a[i][j];
		}
	}
	cin >> sr >> sc >> s;
	dfs(sr,sc,0);
	cout << ex << " " << ey << " " << sum;
	return 0;
}
/*
4 4
....
.##.
....
##..
1 1
RRDLLD
*/