#include<bits/stdc++.h>
#define ll long long
#define P pair<ll,ll>
#define fi first
#define se second
using namespace std;
const ll N=2e2+9;
ll n,m,x,y,k,a[N][N],dp[N][N][N];
queue<ll>que;
int main()
{
cin>>n>>m>>x>>y>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char tmp;
cin>>tmp;
a[i][j]=(tmp=='.'?0:1);
}
memset(dp,128,sizeof(dp));
dp[0][x][y]=0;
for(int i=1;i<=k;i++)
{
ll st,ed,tp;
cin>>st>>ed>>tp;tp--;
if(tp==0)
{
for(int y=1;y<=m;y++)
{
while(!que.empty())que.pop();
for(int x=n;x>=1;x--)
if(!a[x][y])
{
dp[i][x][y]=dp[i-1][x][y];
while(!que.empty() && (que.front()-x>ed-st+1 || dp[i-1][que.front()][y]+que.front()-x<=dp[i-1][x][y])) que.pop();
if(!que.empty())dp[i][x][y]=max(dp[i][x][y],dp[i-1][que.front()][y]+que.front()-x);
que.push(x);
}else while(!que.empty())que.pop();
}
}
if(tp==1)
{
for(int y=1;y<=m;y++)
{
while(!que.empty())que.pop();
for(int x=1;x<=n;x++)
if(!a[x][y])
{
dp[i][x][y]=dp[i-1][x][y];
while(!que.empty() && (x-que.front()>ed-st+1 || dp[i-1][que.front()][y]+x-que.front()<=dp[i-1][x][y])) que.pop();
if(!que.empty())dp[i][x][y]=max(dp[i][x][y],dp[i-1][que.front()][y]+x-que.front());
que.push(x);
}else while(!que.empty())que.pop();
}
}
if(tp==2)
{
for(int x=1;x<=n;x++)
{
while(!que.empty())que.pop();
ll maxx=INT_MIN;
for(int y=m;y>=1;y--)
if(!a[x][y])
{
dp[i][x][y]=dp[i-1][x][y];
while(!que.empty() && ((que.front()-y>ed-st+1) || (dp[i-1][x][que.front()]+que.front()-y<=dp[i-1][x][y])))que.pop();
if(!que.empty())dp[i][x][y]=max(dp[i][x][y],dp[i-1][x][que.front()]+que.front()-y);
que.push(y);
}else while(!que.empty())que.pop();
}
}
if(tp==3)
{
for(int x=1;x<=n;x++)
{
while(!que.empty())que.pop();
for(int y=1;y<=m;y++)
if(!a[x][y])
{
dp[i][x][y]=dp[i-1][x][y];
while(!que.empty() && (y-que.front()>ed-st+1 || dp[i-1][x][que.front()]+y-que.front()<=dp[i-1][x][y])) que.pop();
if(!que.empty())dp[i][x][y]=max(dp[i][x][y],dp[i-1][x][que.front()]+y-que.front());
que.push(y);
}else while(!que.empty())que.pop();
}
}
}
ll maxx=INT_MIN;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
maxx=max(maxx,dp[k][i][j]);
cout<<maxx;
return 0;
}