CF1063B#40WA
```c++
#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y,r,c;
};
int n,m,r,c,x,y,ans;
char a[2005][2005];
bool b[2005][2005];
string s;
queue<node>q;
signed main()
{
cin>>n>>m>>r>>c>>x>>y;
for(int i=1;i<=n;i++)
{
cin>>s;
for(int j=1;j<=m;j++)
a[i][j]=s[j-1];
}
q.push({x,y,r,c});
b[r][c]=1;
while(!q.empty())
{
int x=q.front().x,y=q.front().y,r=q.front().r,c=q.front().c;
if(r>1&&a[r-1][c]=='.'&&b[r-1][c]==0)q.push({x,y,r-1,c}),b[r-1][c]=1;
if(r<n&&a[r+1][c]=='.'&&b[r+1][c]==0)q.push({x,y,r+1,c}),b[r+1][c]=1;
if(c<m&&y>0&&a[r][c+1]=='.'&&b[r][c+1]==0)q.push({x,y-1,r,c+1}),b[r][c+1]=1;
if(c>1&&x>0&&a[r][c-1]=='.'&&b[r][c-1]==0)q.push({x-1,y,r,c-1}),b[r][c-1]=1;
q.pop();
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(b[i][j])ans++;
}
cout<<ans;
}
```