QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#830791#9775. The WitnessRadewoosh#AC ✓2ms5840kbC++2311.4kb2024-12-24 22:54:312024-12-24 22:54:32

Judging History

你现在查看的是最新测评结果

  • [2024-12-24 22:54:32]
  • 评测
  • 测评结果:AC
  • 用时:2ms
  • 内存:5840kb
  • [2024-12-24 22:54:31]
  • 提交

answer

//~ while (clock()<=69*CLOCKS_PER_SEC)
//~ #pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("O3")
//~ #pragma GCC target ("avx2")
//~ #pragma GCC optimize("Ofast")
//~ #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//~ #pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace __gnu_pbds;
using namespace std;

template <typename T>
using ordered_set =
    tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

#define sim template < class c
#define ris return * this
#define dor > debug & operator <<
#define eni(x) sim > typename \
  enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) {
sim > struct rge { c b, e; };
sim > rge<c> range(c i, c j) { return rge<c>{i, j}; }
sim > auto dud(c* x) -> decltype(cerr << *x, 0);
sim > char dud(...);
struct debug {
#ifdef LOCAL
~debug() { cerr << endl; }
eni(!=) cerr << boolalpha << i; ris; }
eni(==) ris << range(begin(i), end(i)); }
sim, class b dor(pair < b, c > d) {
  ris << "(" << d.first << ", " << d.second << ")";
}
sim dor(rge<c> d) {
  *this << "[";
  for (auto it = d.b; it != d.e; ++it)
    *this << ", " + 2 * (it == d.b) << *it;
  ris << "]";
}
#else
sim dor(const c&) { ris; }
#endif
};
#define imie(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] "

#define shandom_ruffle random_shuffle

using ll=long long;
using pii=pair<int,int>;
using pll=pair<ll,ll>;
using vi=vector<int>;
using vll=vector<ll>;
const int nax=207;
const int vax=1707;

int n, m;
char wcz[nax][nax];

pii sta, kon;

vector<pii> wyn;

vector<pii> graf[nax][nax];

void ans(int v)
{
	if (v)
	{
		printf("YES\n");
		printf("%d\n", (int)wyn.size());
		for (pii i : wyn)
			printf("%d %d\n", i.first, i.second);
	}
	else
	{
		printf("NO\n");
	}
	exit(0);
}

vector<pii> brzeg, lewy, prawy;

vector<pair<pii,int>> zlewej[nax];
vector<pair<pii,int>> zprawej[nax];

int krawedzie;

vector<vector<pii>> bomble;

void edge(pii a, pii b)
{
	krawedzie++;
	//~ debug() << imie(a) << imie(b);
	graf[a.first][a.second].push_back(b);
	graf[b.first][b.second].push_back(a);
}

pii lokalizuj(pii v)//{0, i} to w lewym, {1, i} to w prawym
{
	for (int i=0; i<(int)lewy.size(); i++)
		if (lewy[i]==v)
			return {0, i};
	for (int i=0; i<(int)prawy.size(); i++)
		if (prawy[i]==v)
			return {1, i};
	return {-1, -1};
}

int wbrzegu(pii v)
{
	for (int i=0; i<(int)brzeg.size(); i++)
		if (brzeg[i]==v)
			return i;
	return -1;
}

void lacz_zmiana(int a, int b, int x)
{
	zlewej[a].push_back({{1, b}, x});
	zprawej[b].push_back({{0, a}, x});
}

int bylo[nax][nax];

int rx[]={-1, 0, 1, 0};
int ry[]={0, -1, 0, 1};

vector<pii> glo;

int nalew[nax][nax];
int napra[nax][nax];

int numlew[nax][nax];
int numpra[nax][nax];

pii rusz(pii v, int kt)
{
	return {v.first+rx[kt], v.second+ry[kt]};
}

int czas;
int nasci[nax][nax];

int probuj_prawo_lewo(pii v)
{
	if ((v.first==0 || v.first==n) && (v.second==0 || v.second==m))
		return 0;
	
	glo.clear();
	int ter=-1;
	if (v.first==n)
		ter=0;
	if (v.first==0)
		ter=2;
	if (v.second==m)
		ter=1;
	if (v.second==0)
		ter=3;
	assert(ter>=0);
	
	glo.push_back(v);
	glo.push_back(rusz(v, ter));
	
	if (bylo[glo.back().first][glo.back().second] || !graf[glo.back().first][glo.back().second].empty())
		return 0;
	
	czas++;
	for (pii i : glo)
		nasci[i.first][i.second]=czas;
	
	while((int)glo.size()>1)
	{
		if (nalew[glo.back().first][glo.back().second])
			return 1;
		int r=glo.size();
		pii przed=glo[r-2];
		ter=(ter+1)%4;
		while(1)
		{
			pii u=rusz(glo.back(), ter);
			if ((!bylo[u.first][u.second] && graf[u.first][u.second].empty() && !napra[u.first][u.second]) || u==przed)
			{
				if (nasci[u.first][u.second]==czas)
				{
					while(glo.back()!=u)
					{
						nasci[glo.back().first][glo.back().second]=0;
						glo.pop_back();
					}
				}
				else
				{
					glo.push_back(u);
					nasci[u.first][u.second]=czas;
				}
				break;
			}
			ter=(ter+3)%4;
		}
	}
	return 0;
}

int probuj_lewo_prawo(pii v)
{
	if ((v.first==0 || v.first==n) && (v.second==0 || v.second==m))
		return 0;
	
	glo.clear();
	int ter=-1;
	if (v.first==n)
		ter=0;
	if (v.first==0)
		ter=2;
	if (v.second==m)
		ter=1;
	if (v.second==0)
		ter=3;
	assert(ter>=0);
	
	glo.push_back(v);
	glo.push_back(rusz(v, ter));
	
	if (bylo[glo.back().first][glo.back().second] || !graf[glo.back().first][glo.back().second].empty())
		return 0;
	
	czas++;
	for (pii i : glo)
		nasci[i.first][i.second]=czas;
	
	while((int)glo.size()>1)
	{
		if (napra[glo.back().first][glo.back().second])
			return 1;
		int r=glo.size();
		pii przed=glo[r-2];
		ter=(ter+3)%4;
		while(1)
		{
			pii u=rusz(glo.back(), ter);
			if (u.first==-1 || u.second==-1)
			{
				debug() << imie(v) << imie(glo);
			}
			if ((!bylo[u.first][u.second] && graf[u.first][u.second].empty() && !nalew[u.first][u.second]) || u==przed)
			{
				if (nasci[u.first][u.second]==czas)
				{
					while(glo.back()!=u)
					{
						nasci[glo.back().first][glo.back().second]=0;
						glo.pop_back();
					}
				}
				else
				{
					glo.push_back(u);
					nasci[u.first][u.second]=czas;
				}
				break;
			}
			ter=(ter+1)%4;
		}
	}
	return 0;
}

vector<pii> stos;

int okskippra(int a, int b)
{
	for (int i=a; i<=b; i++)
		if (!zprawej[i].empty())
			return 0;
	return 1;
}

int okskiplew(int a, int b)
{
	for (int i=a; i<=b; i++)
		if (!zlewej[i].empty())
			return 0;
	return 1;
}

void dodaj(vector<pii> &wek)
{
	for (int i=1; i<(int)wek.size(); i++)
	{
		stos.push_back(wek[i]);
		bylo[wek[i].first][wek[i].second]=1;
	}
}

void dodajodw(vector<pii> &wek)
{
	for (int i=(int)wek.size()-2; i>=0; i--)
	{
		stos.push_back(wek[i]);
		bylo[wek[i].first][wek[i].second]=1;
	}
}

void dodajjeden(pii v)
{
	bylo[v.first][v.second]=1;
	stos.push_back(v);
}

void rollback(int rs)
{
	while((int)stos.size()>rs)
	{
		bylo[stos.back().first][stos.back().second]=0;
		stos.pop_back();
	}
}

int bylem(pii v)
{
	return bylo[v.first][v.second];
}

void rekpra(int a, int b, int rs);

void reklew(int a, int b, int rs)
{
	if (a==(int)lewy.size())
	{
		if (okskippra(b+1, (int)prawy.size()-1))
		{
			wyn=stos;
			ans(1);
		}
		return;
	}
	if (bylem(lewy[a]))
		return;
	dodajjeden(lewy[a]);
	rs++;
	debug() << "lew " << imie(a) << imie(b) << imie(stos);
	if (!zlewej[a].empty())
	{
		pii gdz=zlewej[a][0].first;
		int num=zlewej[a][0].second;
		if (!gdz.first)
		{
			if (!okskiplew(a+1, gdz.second-1) || gdz.second<=a)
				return;
			dodaj(bomble[num]);
			reklew(gdz.second+1, b, stos.size());
		}
		else
		{
			if (!okskippra(b+1, gdz.second-1) || gdz.second<=b)
				return;
			dodaj(bomble[num]);
			rekpra(a, gdz.second+1, stos.size());
		}
		return;
	}
	
	reklew(a+1, b, rs);
	rollback(rs);
	
	if (probuj_lewo_prawo(lewy[a]))
	{
		int x=numpra[glo.back().first][glo.back().second];
		if (okskippra(b+1, x) || x<=b)
		{
			dodaj(glo);
			rekpra(a, x+1, stos.size());
		}
	}
}

void rekpra(int a, int b, int rs)
{
	if (b==(int)prawy.size())
	{
		if (okskiplew(a+1, (int)lewy.size()-1))
		{
			wyn=stos;
			ans(1);
		}
		return;
	}
	if (bylem(prawy[b]))
		return;
	dodajjeden(prawy[b]);
	rs++;
	debug() << "pra " << imie(a) << imie(b) << imie(stos);
	if (!zprawej[b].empty())
	{
		pii gdz=zprawej[b][0].first;
		int num=zprawej[b][0].second;
		if (!gdz.first)
		{
			if (!okskiplew(a+1, gdz.second-1) || gdz.second<=a)
				return;
			dodajodw(bomble[num]);
			reklew(gdz.second+1, b, stos.size());
		}
		else
		{
			if (!okskippra(b+1, gdz.second-1) || gdz.second<=b)
				return;
			dodaj(bomble[num]);
			rekpra(a, gdz.second+1, stos.size());
		}
		return;
	}
	
	rekpra(a, b+1, rs);
	rollback(rs);
	
	if (probuj_prawo_lewo(prawy[b]))
	{
		int x=numlew[glo.back().first][glo.back().second];
		if (okskiplew(a+1, x) || x<=a)
		{
			dodaj(glo);
			reklew(x+1, b, stos.size());
		}
	}
}

int main()
{
	scanf("%d%d", &n, &m);
	for (int i=1; i<=n; i++)
		scanf("%s", wcz[i]+1);
	scanf("%d%d", &sta.first, &sta.second);
	scanf("%d%d", &kon.first, &kon.second);
	for (int i=1; i<=n; i++)
		for (int j=1; j<m; j++)
			if (wcz[i][j]!=wcz[i][j+1])
				edge({i-1, j}, {i, j});
	for (int i=1; i<n; i++)
		for (int j=1; j<=m; j++)
			if (wcz[i][j]!=wcz[i+1][j])
				edge({i, j-1}, {i, j});
	
	{
		for (int i=1; i<=m; i++)
			brzeg.push_back({0, i});
		for (int i=1; i<=n; i++)
			brzeg.push_back({i, m});
		for (int i=1; i<=m; i++)
			brzeg.push_back({n, m-i});
		for (int i=1; i<=n; i++)
			brzeg.push_back({n-i, 0});
	}
	while(brzeg[0]!=sta)
	{
		pii wez=brzeg[0];
		brzeg.push_back(wez);
		brzeg.erase(brzeg.begin());
	}
	
	{
		int g=wbrzegu(kon);
		assert(g>=0);
		for (int i=0; i<=g; i++)
			lewy.push_back(brzeg[i]);
		prawy.push_back(sta);
		for (int i=(int)brzeg.size()-1; i>=g; i--)
			prawy.push_back(brzeg[i]);
	}
	
	for (int i=0; i<=n; i++)
		for (int j=0; j<=m; j++)
			if ((int)graf[i][j].size()>2)
				ans(0);
	
	debug() << imie(lewy);
	debug() << imie(prawy);
	
	for (pii i : brzeg)
	{
		if (graf[i.first][i.second].empty())
			continue;
		pii ost{-1, -1};
		pii v=i;
		vector<pii> ter{v};
		while((int)ter.size()==1 || wbrzegu(ter.back())==-1)
		{
			pii u;
			for (pii i : graf[v.first][v.second])
				if (i!=ost)
					u=i;
			ost=v;
			v=u;
			ter.push_back(v);
		}
		if (wbrzegu(ter.back())<wbrzegu(i))
			continue;
		krawedzie-=((int)ter.size())-1;
		debug() << ter;
		bomble.push_back(ter);
	}
	if (krawedzie)
		ans(0);
	
	int num=-1;
	for (auto &i : bomble)
	{
		num++;
		if (i[0]==sta && i.back()==kon)
		{
			if ((int)bomble.size()>1)
				ans(0);
			wyn=i;
			ans(1);
		}
		if (i[0]==sta)
		{
			pii x=lokalizuj(i.back());
			if (x.first)
			{
				lacz_zmiana(0, x.second, num);
			}
			else
			{
				reverse(i.begin(), i.end());
				lacz_zmiana(x.second, 0, num);
			}
			continue;
		}
		if (i.back()==kon)
			reverse(i.begin(), i.end());
		
		if (i[0]==kon)
		{
			pii x=lokalizuj(i.back());
			if (x.first)
			{
				lacz_zmiana(((int)lewy.size())-1, x.second, num);
			}
			else
			{
				reverse(i.begin(), i.end());
				lacz_zmiana(x.second, ((int)prawy.size())-1, num);
			}
			continue;
		}
		
		pii x=lokalizuj(i[0]);
		pii y=lokalizuj(i.back());
		
		if (x.first!=y.first)
		{
			if (x.first)
			{
				swap(x, y);
				reverse(i.begin(), i.end());
			}
			lacz_zmiana(x.second, y.second, num);
			continue;
		}
		
		if (x.second>y.second)
		{
			swap(x, y);
			reverse(i.begin(), i.end());
		}
		
		if (!x.first)
		{
			zlewej[x.second].push_back({{0, y.second}, num});
			//czy potrzebne w druga strone?
		}
		else
		{
			zprawej[x.second].push_back({{1, y.second}, num});
			//czy potrzebne w druga strone?
		}
	}
	
	
	for (pii i : lewy)
		nalew[i.first][i.second]=1;
	for (pii i : prawy)
		napra[i.first][i.second]=1;
	
	num=-1;
	for (pii i : lewy)
		numlew[i.first][i.second]=(++num);
	num=-1;
	for (pii i : prawy)
		numpra[i.first][i.second]=(++num);
	
	for (int i=0; i<(int)lewy.size(); i++)
		debug() << imie(i) << imie(zlewej[i]);
	
	for (int i=0; i<(int)prawy.size(); i++)
		debug() << imie(i) << imie(zprawej[i]);
	
	reklew(0, 0, 0);
	rollback(0);
	rekpra(0, 0, 0);
	ans(0);
	
	return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3836kb

input:

3 3
BBB
BWB
WWW
3 0 0 3

output:

YES
9
3 0
2 0
2 1
1 1
1 2
2 2
2 3
1 3
0 3

result:

ok n=3, m=3

Test #2:

score: 0
Accepted
time: 0ms
memory: 3860kb

input:

1 1
W
0 0 1 1

output:

YES
3
0 0
0 1
1 1

result:

ok n=1, m=1

Test #3:

score: 0
Accepted
time: 1ms
memory: 4072kb

input:

2 2
WB
BW
0 0 2 2

output:

NO

result:

ok n=2, m=2

Test #4:

score: 0
Accepted
time: 1ms
memory: 4188kb

input:

4 6
BBBBBB
WBBBBB
BBBBBB
BBBWWB
0 0 4 2

output:

YES
27
0 0
1 0
1 1
2 1
2 0
3 0
4 0
4 1
3 1
3 2
2 2
1 2
0 2
0 3
0 4
0 5
0 6
1 6
2 6
3 6
4 6
4 5
3 5
3 4
3 3
4 3
4 2

result:

ok n=4, m=6

Test #5:

score: 0
Accepted
time: 1ms
memory: 3896kb

input:

4 6
BWBBWB
BBBBBB
BBBBBB
BBWBBB
0 0 0 4

output:

YES
29
0 0
0 1
1 1
1 2
0 2
0 3
1 3
2 3
2 2
2 1
2 0
3 0
4 0
4 1
4 2
3 2
3 3
4 3
4 4
4 5
4 6
3 6
2 6
1 6
0 6
0 5
1 5
1 4
0 4

result:

ok n=4, m=6

Test #6:

score: 0
Accepted
time: 0ms
memory: 4144kb

input:

4 4
WWWW
WWWW
BBBB
BBBB
2 0 2 4

output:

YES
5
2 0
2 1
2 2
2 3
2 4

result:

ok n=4, m=4

Test #7:

score: 0
Accepted
time: 0ms
memory: 4260kb

input:

12 3
WWW
WBB
WWW
WWW
BBW
WWW
WWW
WBB
WWW
WWW
BBW
WWW
0 0 12 0

output:

YES
41
0 0
0 1
0 2
0 3
1 3
1 2
1 1
2 1
2 2
2 3
3 3
3 2
3 1
3 0
4 0
4 1
4 2
5 2
5 1
5 0
6 0
6 1
6 2
6 3
7 3
7 2
7 1
8 1
8 2
8 3
9 3
9 2
9 1
9 0
10 0
10 1
10 2
11 2
11 1
11 0
12 0

result:

ok n=12, m=3

Test #8:

score: 0
Accepted
time: 1ms
memory: 3916kb

input:

1 1
B
0 0 1 1

output:

YES
3
0 0
0 1
1 1

result:

ok n=1, m=1

Test #9:

score: 0
Accepted
time: 1ms
memory: 4128kb

input:

6 6
WWBBBW
WWWWBB
WBBWBW
WBWWBW
WBBBBW
WBBWWW
0 0 2 0

output:

NO

result:

ok n=6, m=6

Test #10:

score: 0
Accepted
time: 1ms
memory: 4148kb

input:

5 5
WBWBW
WBWBW
WBWBW
WBBBW
WWWWW
0 0 0 3

output:

YES
36
0 0
1 0
2 0
3 0
4 0
5 0
5 1
5 2
5 3
5 4
5 5
4 5
3 5
2 5
1 5
0 5
0 4
1 4
2 4
3 4
4 4
4 3
4 2
4 1
3 1
2 1
1 1
0 1
0 2
1 2
2 2
3 2
3 3
2 3
1 3
0 3

result:

ok n=5, m=5

Test #11:

score: 0
Accepted
time: 1ms
memory: 3828kb

input:

5 5
WBBBW
WBBBW
WBBBW
WBBBW
WWWWW
0 0 0 3

output:

YES
14
0 0
0 1
1 1
2 1
3 1
4 1
4 2
4 3
4 4
3 4
2 4
1 4
0 4
0 3

result:

ok n=5, m=5

Test #12:

score: 0
Accepted
time: 1ms
memory: 3872kb

input:

8 8
BBBBBBBB
WWWWWWWB
BBBBBBWB
BBBBBBWB
BBWBBBWB
WWWBBBWB
WWWBBBWB
WWWBBBWB
5 0 8 8

output:

YES
40
5 0
5 1
5 2
4 2
4 3
5 3
6 3
7 3
8 3
8 4
8 5
8 6
7 6
6 6
5 6
4 6
3 6
2 6
2 5
2 4
2 3
2 2
2 1
2 0
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
2 7
3 7
4 7
5 7
6 7
7 7
8 7
8 8

result:

ok n=8, m=8

Test #13:

score: 0
Accepted
time: 0ms
memory: 4324kb

input:

40 40
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBB...

output:

YES
1641
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
1 40
1 39
1 38
1 37
1 36
1 35
1 34
1 33
1 32
1 31
1 30
1 29
1 28
1 27
1 26
1 25
1 24
1 23
1 22
1...

result:

ok n=40, m=40

Test #14:

score: 0
Accepted
time: 1ms
memory: 3908kb

input:

4 10
WWWWWWBBBW
WWBWBBBWBB
BWBWBWWWWB
BBBWBWWBWW
2 0 4 10

output:

YES
41
2 0
2 1
3 1
3 2
2 2
1 2
1 3
2 3
3 3
4 3
4 4
3 4
2 4
1 4
1 5
1 6
0 6
0 7
0 8
0 9
1 9
1 10
2 10
3 10
3 9
2 9
2 8
1 8
1 7
2 7
2 6
2 5
3 5
4 5
4 6
4 7
3 7
3 8
4 8
4 9
4 10

result:

ok n=4, m=10

Test #15:

score: 0
Accepted
time: 1ms
memory: 4224kb

input:

39 39
BWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWW...

output:

YES
300
0 1
1 1
1 0
2 0
2 1
3 1
3 0
4 0
4 1
5 1
5 0
6 0
6 1
7 1
7 0
8 0
8 1
9 1
9 0
10 0
10 1
11 1
11 0
12 0
12 1
13 1
13 0
14 0
14 1
15 1
15 0
16 0
16 1
17 1
17 0
18 0
18 1
19 1
19 0
20 0
20 1
21 1
21 0
22 0
22 1
23 1
23 0
24 0
24 1
25 1
25 0
26 0
26 1
27 1
27 0
28 0
28 1
29 1
29 0
30 0
30 1
31 1
3...

result:

ok n=39, m=39

Test #16:

score: 0
Accepted
time: 1ms
memory: 3940kb

input:

9 7
BBBWWBB
BBBWWBB
BBBWWBW
BBBWWBW
WBBBBBW
BBBWWBW
BBBWWBW
BBBWWBB
BBBWWBB
0 1 9 1

output:

YES
60
0 1
0 2
0 3
1 3
2 3
3 3
4 3
4 4
4 5
3 5
2 5
1 5
0 5
0 6
0 7
1 7
2 7
2 6
3 6
4 6
5 6
6 6
7 6
7 7
8 7
9 7
9 6
9 5
8 5
7 5
6 5
5 5
5 4
5 3
6 3
7 3
8 3
9 3
9 2
8 2
7 2
6 2
5 2
4 2
3 2
2 2
1 2
1 1
1 0
2 0
3 0
4 0
4 1
5 1
5 0
6 0
7 0
8 0
9 0
9 1

result:

ok n=9, m=7

Test #17:

score: 0
Accepted
time: 1ms
memory: 3876kb

input:

9 7
BBBWWBB
BBBWWBB
WBBWWBW
WBBWWBW
WBBBBBW
WBBWWBW
WWBWWBW
BBBWWBB
BBBWWBB
0 1 9 1

output:

NO

result:

ok n=9, m=7

Test #18:

score: 0
Accepted
time: 1ms
memory: 3892kb

input:

4 10
WWWWWWBBBW
WWBWBBBWBB
BWBWBWWWWB
BBBWBWWBWW
2 0 3 10

output:

NO

result:

ok n=4, m=10

Test #19:

score: 0
Accepted
time: 1ms
memory: 4192kb

input:

6 6
WBBBBW
WWWWBW
BBBWBB
WBWWWB
BBWBWB
WBWBWB
6 0 6 6

output:

YES
45
6 0
6 1
5 1
5 0
4 0
4 1
3 1
3 0
2 0
2 1
2 2
2 3
3 3
3 2
4 2
5 2
6 2
6 3
5 3
4 3
4 4
5 4
6 4
6 5
5 5
4 5
3 5
3 4
2 4
1 4
1 3
1 2
1 1
0 1
0 2
0 3
0 4
0 5
1 5
2 5
2 6
3 6
4 6
5 6
6 6

result:

ok n=6, m=6

Test #20:

score: 0
Accepted
time: 1ms
memory: 3896kb

input:

6 6
WBBBBW
WWWWBW
BBBWBB
WBWWWB
BBWBWB
WBWBWW
6 0 6 6

output:

NO

result:

ok n=6, m=6

Test #21:

score: 0
Accepted
time: 0ms
memory: 3896kb

input:

6 6
WWWWWW
WWWWWW
BBBWWW
WBWWWW
BBWBWW
WBWBWW
6 0 6 6

output:

YES
25
6 0
6 1
5 1
5 0
4 0
4 1
3 1
3 0
2 0
2 1
2 2
2 3
3 3
3 2
4 2
5 2
6 2
6 3
5 3
4 3
4 4
5 4
6 4
6 5
6 6

result:

ok n=6, m=6

Test #22:

score: 0
Accepted
time: 1ms
memory: 3856kb

input:

6 6
WWWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWWW
6 0 6 6

output:

YES
39
6 0
6 1
5 1
4 1
3 1
2 1
1 1
1 2
2 2
3 2
4 2
5 2
6 2
6 3
5 3
4 3
3 3
2 3
1 3
0 3
0 4
1 4
2 4
3 4
4 4
5 4
5 5
4 5
3 5
2 5
1 5
0 5
0 6
1 6
2 6
3 6
4 6
5 6
6 6

result:

ok n=6, m=6

Test #23:

score: 0
Accepted
time: 1ms
memory: 3908kb

input:

6 6
WWWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWWW
6 0 0 6

output:

YES
33
6 0
6 1
5 1
4 1
3 1
2 1
1 1
1 2
2 2
3 2
4 2
5 2
6 2
6 3
5 3
4 3
3 3
2 3
1 3
0 3
0 4
1 4
2 4
3 4
4 4
5 4
5 5
4 5
3 5
2 5
1 5
0 5
0 6

result:

ok n=6, m=6

Test #24:

score: 0
Accepted
time: 1ms
memory: 3916kb

input:

6 6
WWWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWBW
WBWWWW
6 0 0 0

output:

YES
39
6 0
6 1
5 1
4 1
3 1
2 1
1 1
1 2
2 2
3 2
4 2
5 2
6 2
6 3
6 4
6 5
6 6
5 6
4 6
3 6
2 6
1 6
0 6
0 5
1 5
2 5
3 5
4 5
5 5
5 4
4 4
3 4
2 4
1 4
0 4
0 3
0 2
0 1
0 0

result:

ok n=6, m=6

Test #25:

score: 0
Accepted
time: 1ms
memory: 5840kb

input:

4 10
WBWWWWBWBW
WBWWBWBWBW
WBWWBWBBBW
WWWWBWWWWW
4 0 0 8

output:

YES
51
4 0
3 0
2 0
1 0
0 0
0 1
1 1
2 1
3 1
3 2
2 2
1 2
0 2
0 3
1 3
2 3
3 3
4 3
4 4
3 4
2 4
1 4
1 5
2 5
3 5
4 5
4 6
4 7
4 8
4 9
4 10
3 10
2 10
1 10
0 10
0 9
1 9
2 9
3 9
3 8
3 7
3 6
2 6
1 6
0 6
0 7
1 7
2 7
2 8
1 8
0 8

result:

ok n=4, m=10

Test #26:

score: 0
Accepted
time: 1ms
memory: 3896kb

input:

4 11
WBWWWWWBWWW
WBWWBWWBWWB
WBWWBWWBWWB
WWWWBWWWWWB
4 0 4 11

output:

YES
48
4 0
3 0
2 0
1 0
0 0
0 1
1 1
2 1
3 1
3 2
2 2
1 2
0 2
0 3
1 3
2 3
3 3
4 3
4 4
3 4
2 4
1 4
1 5
2 5
3 5
4 5
4 6
3 6
2 6
1 6
0 6
0 7
1 7
2 7
3 7
3 8
2 8
1 8
0 8
0 9
0 10
0 11
1 11
1 10
2 10
3 10
4 10
4 11

result:

ok n=4, m=11

Test #27:

score: 0
Accepted
time: 0ms
memory: 4072kb

input:

3 3
WWW
WBW
WWW
0 0 3 3

output:

NO

result:

ok n=3, m=3

Test #28:

score: 0
Accepted
time: 1ms
memory: 3876kb

input:

3 3
BWB
WWW
BWB
0 0 3 3

output:

NO

result:

ok n=3, m=3

Test #29:

score: 0
Accepted
time: 1ms
memory: 3880kb

input:

3 3
BWB
WWW
BWB
0 0 3 0

output:

YES
14
0 0
1 0
1 1
0 1
0 2
1 2
1 3
2 3
2 2
3 2
3 1
2 1
2 0
3 0

result:

ok n=3, m=3

Test #30:

score: 0
Accepted
time: 1ms
memory: 4084kb

input:

3 3
BWW
WBW
BWB
0 0 3 0

output:

NO

result:

ok n=3, m=3

Test #31:

score: 0
Accepted
time: 1ms
memory: 4140kb

input:

3 3
BWB
WWW
BWB
1 0 2 0

output:

YES
12
1 0
1 1
0 1
0 2
1 2
1 3
2 3
2 2
3 2
3 1
2 1
2 0

result:

ok n=3, m=3

Test #32:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

3 3
BWB
WWW
BWB
1 0 3 0

output:

YES
13
1 0
1 1
0 1
0 2
1 2
1 3
2 3
2 2
3 2
3 1
2 1
2 0
3 0

result:

ok n=3, m=3

Test #33:

score: 0
Accepted
time: 1ms
memory: 4280kb

input:

12 18
WWWWBWWWWWBWWWWWBW
WWWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWWWWBWWWWWBWWWW
12 1 0 17

output:

YES
213
12 1
11 1
10 1
9 1
8 1
7 1
6 1
5 1
4 1
3 1
2 1
2 2
3 2
4 2
5 2
6 2
7 2
8 2
9 2
10 2
11 2
12 2
12 3
11 3
10 3
9 3
8 3
7 3
6 3
5 3
4 3
3 3
2 3
1 3
1 2
1 1
1 0
0 0
0 1
0 2
0 3
0 4
1 4
2 4
3 4
4 4
5 4
6 4
7 4
8 4
9 4
10 4
11 4
11 5
10 5
9 5
8 5
7 5
6 5
5 5
4 5
3 5
2 5
1 5
0 5
0 6
1 6
2 6
3 6
4 6...

result:

ok n=12, m=18

Test #34:

score: 0
Accepted
time: 1ms
memory: 4132kb

input:

12 18
WWWWBWWWWWBWWWWWBW
WWWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWWWWBWWWWWBWWWW
12 1 12 2

output:

NO

result:

ok n=12, m=18

Test #35:

score: 0
Accepted
time: 1ms
memory: 4260kb

input:

12 18
WWWWBWWWWWBWWWWWBW
WWWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWWWWBWWWWWBWWWW
12 1 12 16

output:

YES
228
12 1
11 1
10 1
9 1
8 1
7 1
6 1
5 1
4 1
3 1
2 1
2 2
3 2
4 2
5 2
6 2
7 2
8 2
9 2
10 2
11 2
12 2
12 3
11 3
10 3
9 3
8 3
7 3
6 3
5 3
4 3
3 3
2 3
1 3
1 2
1 1
1 0
0 0
0 1
0 2
0 3
0 4
1 4
2 4
3 4
4 4
5 4
6 4
7 4
8 4
9 4
10 4
11 4
11 5
10 5
9 5
8 5
7 5
6 5
5 5
4 5
3 5
2 5
1 5
0 5
0 6
1 6
2 6
3 6
4 6...

result:

ok n=12, m=18

Test #36:

score: 0
Accepted
time: 0ms
memory: 4048kb

input:

12 18
WWWWBWWWWWBWWWWWBW
WWWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWBWWBWWBWWBWWBW
WBWWWWWBWWWWWBWWWW
12 1 0 13

output:

YES
219
12 1
11 1
10 1
9 1
8 1
7 1
6 1
5 1
4 1
3 1
2 1
2 2
3 2
4 2
5 2
6 2
7 2
8 2
9 2
10 2
11 2
12 2
12 3
11 3
10 3
9 3
8 3
7 3
6 3
5 3
4 3
3 3
2 3
1 3
1 2
1 1
1 0
0 0
0 1
0 2
0 3
0 4
1 4
2 4
3 4
4 4
5 4
6 4
7 4
8 4
9 4
10 4
11 4
11 5
10 5
9 5
8 5
7 5
6 5
5 5
4 5
3 5
2 5
1 5
0 5
0 6
1 6
2 6
3 6
4 6...

result:

ok n=12, m=18

Test #37:

score: 0
Accepted
time: 1ms
memory: 4584kb

input:

40 40
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBBBBBBBBBBBBBBWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWBBBBBBBBBBBBBBBBBBB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
WWWWWWWWWWWWWWWWWWWBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBWWWWWWWWWWWWWWWWWWW
BBBBBBB...

output:

YES
1681
0 40
0 39
0 38
0 37
0 36
0 35
0 34
0 33
0 32
0 31
0 30
0 29
0 28
0 27
0 26
0 25
0 24
0 23
0 22
0 21
0 20
0 19
0 18
0 17
0 16
0 15
0 14
0 13
0 12
0 11
0 10
0 9
0 8
0 7
0 6
0 5
0 4
0 3
0 2
0 1
0 0
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
2 19
2...

result:

ok n=40, m=40

Test #38:

score: 0
Accepted
time: 0ms
memory: 4296kb

input:

40 40
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWB...

output:

YES
1681
0 40
1 40
2 40
3 40
4 40
5 40
6 40
7 40
8 40
9 40
10 40
11 40
12 40
13 40
14 40
15 40
16 40
17 40
18 40
19 40
20 40
21 40
22 40
23 40
24 40
25 40
26 40
27 40
28 40
29 40
30 40
31 40
32 40
33 40
34 40
35 40
36 40
37 40
38 40
39 40
40 40
40 39
39 39
38 39
37 39
36 39
35 39
34 39
33 39
32 39
3...

result:

ok n=40, m=40

Test #39:

score: 0
Accepted
time: 0ms
memory: 4320kb

input:

40 40
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBBWBWWBWBB
WBWWBWB...

output:

NO

result:

ok n=40, m=40

Test #40:

score: 0
Accepted
time: 1ms
memory: 4408kb

input:

40 40
BWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
WWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
BBBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
WWWWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
BBBBBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
WWWWWWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
BBBBBBBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBW
WWWWWWW...

output:

YES
1641
0 0
0 1
1 1
1 0
2 0
2 1
2 2
1 2
0 2
0 3
1 3
2 3
3 3
3 2
3 1
3 0
4 0
4 1
4 2
4 3
4 4
3 4
2 4
1 4
0 4
0 5
1 5
2 5
3 5
4 5
5 5
5 4
5 3
5 2
5 1
5 0
6 0
6 1
6 2
6 3
6 4
6 5
6 6
5 6
4 6
3 6
2 6
1 6
0 6
0 7
1 7
2 7
3 7
4 7
5 7
6 7
7 7
7 6
7 5
7 4
7 3
7 2
7 1
7 0
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8...

result:

ok n=40, m=40

Test #41:

score: 0
Accepted
time: 1ms
memory: 4280kb

input:

40 40
BWBWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWB
WWBWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
WWWWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBBBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
WWWWWWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBBBBBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
WWWWWWW...

output:

YES
959
0 0
0 1
1 1
1 0
2 0
2 1
2 2
1 2
0 2
0 3
1 3
2 3
3 3
3 2
3 1
3 0
4 0
4 1
4 2
4 3
4 4
3 4
2 4
1 4
0 4
0 5
1 5
2 5
3 5
4 5
5 5
5 4
5 3
5 2
5 1
5 0
6 0
6 1
6 2
6 3
6 4
6 5
6 6
5 6
4 6
3 6
2 6
1 6
0 6
0 7
1 7
2 7
3 7
4 7
5 7
6 7
7 7
7 6
7 5
7 4
7 3
7 2
7 1
7 0
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8
...

result:

ok n=40, m=40

Test #42:

score: 0
Accepted
time: 2ms
memory: 4220kb

input:

40 40
BWBWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWW
BWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBBBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWWWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBBBBBBB
WWWWWWW...

output:

NO

result:

ok n=40, m=40

Test #43:

score: 0
Accepted
time: 1ms
memory: 4312kb

input:

40 40
BWBWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWW
BWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBBBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWWWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBBBBBBB
WWWWWWW...

output:

YES
965
0 39
1 39
1 40
2 40
2 39
2 38
1 38
0 38
0 37
1 37
2 37
3 37
3 38
3 39
3 40
4 40
4 39
4 38
4 37
4 36
3 36
2 36
1 36
0 36
0 35
1 35
2 35
3 35
4 35
5 35
5 36
5 37
5 38
5 39
5 40
6 40
6 39
6 38
6 37
6 36
6 35
6 34
5 34
4 34
3 34
2 34
1 34
0 34
0 33
1 33
2 33
3 33
4 33
5 33
6 33
7 33
7 34
7 35
7 ...

result:

ok n=40, m=40

Test #44:

score: 0
Accepted
time: 1ms
memory: 4232kb

input:

40 40
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWBBBBB
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBWWWWWW
WWWWWWWWWWWWWWWWWWWWWBWBWBWBWBWBWBBBBBBB
WWWWWWW...

output:

YES
843
0 39
1 39
1 40
2 40
2 39
2 38
1 38
0 38
0 37
1 37
2 37
3 37
3 38
3 39
3 40
4 40
4 39
4 38
4 37
4 36
3 36
2 36
1 36
0 36
0 35
1 35
2 35
3 35
4 35
5 35
5 36
5 37
5 38
5 39
5 40
6 40
6 39
6 38
6 37
6 36
6 35
6 34
5 34
4 34
3 34
2 34
1 34
0 34
0 33
1 33
2 33
3 33
4 33
5 33
6 33
7 33
7 34
7 35
7 ...

result:

ok n=40, m=40

Test #45:

score: 0
Accepted
time: 1ms
memory: 4300kb

input:

40 40
WBWBWBWBWBWBWBWBWBWBBWBWBWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBWBWBWWWWBWBWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBWBWBBBBBBWBWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBWBWWWWWWWWBWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBWBBBBBBBBBBWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBWWWWWWWWWWWWBWBWBWBWBWBWBW
WBWBWBWBWBWBWBBBBBBBBBBBBBBWBWBWBWBWBWBW
WBWBWBW...

output:

YES
1641
0 20
0 21
1 21
1 20
1 19
0 19
0 18
1 18
2 18
2 19
2 20
2 21
2 22
1 22
0 22
0 23
1 23
2 23
3 23
3 22
3 21
3 20
3 19
3 18
3 17
2 17
1 17
0 17
0 16
1 16
2 16
3 16
4 16
4 17
4 18
4 19
4 20
4 21
4 22
4 23
4 24
3 24
2 24
1 24
0 24
0 25
1 25
2 25
3 25
4 25
5 25
5 24
5 23
5 22
5 21
5 20
5 19
5 18
5...

result:

ok n=40, m=40

Test #46:

score: 0
Accepted
time: 1ms
memory: 4364kb

input:

40 40
BWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWW...

output:

YES
381
0 40
1 40
2 40
3 40
3 39
4 39
4 40
5 40
5 39
6 39
6 40
7 40
7 39
8 39
8 40
9 40
9 39
10 39
10 40
11 40
11 39
12 39
12 40
13 40
13 39
14 39
14 40
15 40
15 39
16 39
16 40
17 40
17 39
18 39
18 40
19 40
19 39
20 39
20 40
21 40
21 39
22 39
22 40
23 40
23 39
24 39
24 40
25 40
25 39
26 39
26 40
27 ...

result:

ok n=40, m=40

Test #47:

score: 0
Accepted
time: 1ms
memory: 4240kb

input:

39 39
BWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWW...

output:

NO

result:

ok n=39, m=39

Test #48:

score: 0
Accepted
time: 1ms
memory: 4284kb

input:

39 39
BWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
BWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
WWWWWWWWWWWWWW...

output:

YES
371
0 39
1 39
2 39
3 39
3 38
4 38
5 38
5 39
6 39
6 38
7 38
7 39
8 39
8 38
9 38
9 39
10 39
10 38
11 38
11 39
12 39
12 38
13 38
13 39
14 39
14 38
15 38
15 39
16 39
16 38
17 38
17 39
18 39
18 38
19 38
19 39
20 39
20 38
21 38
21 39
22 39
22 38
23 38
23 39
24 39
24 38
25 38
25 39
26 39
26 38
27 38
27...

result:

ok n=39, m=39

Test #49:

score: 0
Accepted
time: 1ms
memory: 4316kb

input:

40 40
BWBWBWBWBWBWBWBWBWBWWBWBWBWBWBWBWBWBWBWB
WWBWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWB
WWWWBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBBBWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWB
WWWWWWBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWW
BBBBBBBWBWBWBWBWBWBWWWWWWWWWWWWWWWWWWWWB
WWWWWWW...

output:

YES
1027
0 0
0 1
1 1
1 0
2 0
2 1
2 2
1 2
0 2
0 3
1 3
2 3
3 3
3 2
3 1
3 0
4 0
4 1
4 2
4 3
4 4
3 4
2 4
1 4
0 4
0 5
1 5
2 5
3 5
4 5
5 5
5 4
5 3
5 2
5 1
5 0
6 0
6 1
6 2
6 3
6 4
6 5
6 6
5 6
4 6
3 6
2 6
1 6
0 6
0 7
1 7
2 7
3 7
4 7
5 7
6 7
7 7
7 6
7 5
7 4
7 3
7 2
7 1
7 0
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8...

result:

ok n=40, m=40

Test #50:

score: 0
Accepted
time: 1ms
memory: 4040kb

input:

2 3
BWB
BWB
0 1 2 1

output:

NO

result:

ok n=2, m=3

Test #51:

score: 0
Accepted
time: 1ms
memory: 3876kb

input:

5 5
WWWWW
WWWWW
WWWWW
WWWWW
WWWWW
5 5 0 0

output:

YES
11
5 5
5 4
5 3
5 2
5 1
5 0
4 0
3 0
2 0
1 0
0 0

result:

ok n=5, m=5

Test #52:

score: 0
Accepted
time: 1ms
memory: 4084kb

input:

5 5
WWWWW
WWWWW
WWBWW
WWWWW
WWWWW
5 5 0 0

output:

NO

result:

ok n=5, m=5

Test #53:

score: 0
Accepted
time: 1ms
memory: 3916kb

input:

8 7
BWWWWWB
BWBBBWB
BWBWBWB
BWBWBWB
BWWWBWB
BBBBBWB
WWWWWWB
BBBBBBB
0 0 0 7

output:

YES
48
0 0
0 1
1 1
2 1
3 1
4 1
5 1
5 2
5 3
5 4
4 4
3 4
2 4
2 3
3 3
4 3
4 2
3 2
2 2
1 2
1 3
1 4
1 5
2 5
3 5
4 5
5 5
6 5
6 4
6 3
6 2
6 1
6 0
7 0
7 1
7 2
7 3
7 4
7 5
7 6
6 6
5 6
4 6
3 6
2 6
1 6
0 6
0 7

result:

ok n=8, m=7

Test #54:

score: 0
Accepted
time: 1ms
memory: 4152kb

input:

4 9
WBWWBWBWW
BBWWWWWWB
BBWWWWWBB
BBBWBWWBW
2 9 2 0

output:

YES
42
2 9
3 9
3 8
4 8
4 7
3 7
2 7
2 8
1 8
1 9
0 9
0 8
0 7
1 7
1 6
0 6
0 5
1 5
1 4
0 4
0 3
1 3
2 3
2 4
2 5
2 6
3 6
4 6
4 5
3 5
3 4
4 4
4 3
3 3
3 2
2 2
1 2
0 2
0 1
1 1
1 0
2 0

result:

ok n=4, m=9

Extra Test:

score: 0
Extra Test Passed