#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
*/