#include <bits/stdc++.h>

using namespace std;

#define endl '\n'

#define TRACE 1
#define tcout TRACE && cout

#define fst ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

#define int long long

const int P = 998244353;
const int Base = 3221225477;
const int INF = 0x3f3f3f3f3f3f3f3f;

const int N = 1e3 + 10, M = 2e6 + 10;

int n,m,xs,ys,xe,ye;
int cnt; 
int vis[N][N];
char a[N][N];
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};

void dfs(int x,int y)
{
	if(x==xe and y==ye)
	{
		cnt++;
	}
	for(int i=0;i<4;i++)
	{
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(vis[nx][ny]==0 and a[nx][ny]=='.')
		{
			vis[nx][ny]=1;
			dfs(nx,ny);
			vis[nx][ny]=0;
		}
	}
}

signed main()
{
	cin>>n>>m>>xs>>ys>>xe>>ye;
	if(xs==xe and ys==ye)
	{
		cout << 0;
		return 0;
	} 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	dfs(xs,ys);
	cout<<cnt;
	return 0;
	
}

0 comments

No comments so far...