#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
const int maxn=2009;
typedef long long ll;
typedef pair<int,int>P;
P vis[maxn][maxn];
int n,m,r,c,x,y;
int sq[5]={0,0,1,-1},sw[5]={1,-1,0,0};
char a[maxn][maxn];
struct p{
int x,y,l,r;
};
queue<p>q;
int main()
{
cin >> n >> m >> r >> c >> x >> y;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin >> a[i][j];
vis[i][j].F=vis[i][j].S=-1;
}
q.push( (p) {r,c,0,0} );
vis[r][c].F=vis[r][c].S=0;
while(!q.empty())
{
p u=q.front(); q.pop();
for(int i=0;i<4;i++)
{
int nx=u.x+sq[i],ny=u.y+sw[i];
if(nx<1||ny<1||nx>n||ny>m) continue;
if(a[nx][ny] == '*') continue;
p v=u;
v.x=nx,v.y=ny;
if(i == 0) v.r++;
if(i == 1) v.l++;
if(v.l>x||v.r>y) continue;
if( vis[nx][ny].F==-1 || (vis[nx][ny].F>v.l) )
{
q.push( v );
vis[nx][ny].F=v.l;
vis[nx][ny].S=v.r;
}
}
}
int ans=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if( vis[i][j].F!=-1 ) ans++;
cout<<ans;
}