/*"The Woods are lovely dark and deep,
But i have promises to keep,
Miles to go before i sleep and Miles to go before i Sleep"
*/
#include<bits/stdc++.h>
#define pb(n) push_back(n)
unsigned long long mod=1000000007;
using namespace std;
#define GI ({long int t;scanf("%ld",&t);t;})
#define all(x) x.begin(),x.end() //sort(all(x))
#define sz(h1) h1.size()
int m,n;
int visited[100][100];
char ch[100][100]; //made the charater array as a global array.In this array only i give the input
void DFS(int x,int y)
{
if(visited[x][y]==1 || ch[x][y] == '|')
return ;
visited[x][y]=1;
if(ch[x][y]=='J')//SUPPOSE 'J' represent JACK and the 'R' represent ROBot and the robert wants to reach the jack.
return;
if((x+1<m)) //'|' represnts a block and '.' represnts a path-here i am checking the limits
DFS(x+1,y);
if((x-1>=0))
DFS(x-1,y);
if((y+1<n))
DFS(x,y+1);
if((y-1>=0))
DFS(x,y-1);
// CALLING THE FUNCTION RECURSIVELY
}
int main()
{
cout<<"ENter the number of rows and columns:";
cin>>m>>n;
cout<<"Enter the elements:\n";
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>ch[i][j];
int x=-1,y=-1;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(ch[i][j]=='R')
{
x=i,y=j;
break;
}
}
if(x>=0)
break;
}
DFS(x,y);
x=-1,y=-1;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(ch[i][j]=='J')
{
x=i,y=j;
break;
}
}
if(x>=0) //just using x as flag variable
break;
}
if(visited[x][y]==1)
cout<<"ROBOT CAN REACH THE BOSS\n";
else
cout<<"ROBOT CANNOT REACH THE BOSS\n";
return 0;
}
LyoiVGhlIFdvb2RzIGFyZSBsb3ZlbHkgZGFyayBhbmQgZGVlcCwKQnV0IGkgaGF2ZSBwcm9taXNlcyB0byBrZWVwLApNaWxlcyB0byBnbyBiZWZvcmUgaSBzbGVlcCBhbmQgTWlsZXMgdG8gZ28gYmVmb3JlIGkgU2xlZXAiCiovCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcGIobikgcHVzaF9iYWNrKG4pCnVuc2lnbmVkIGxvbmcgbG9uZyBtb2Q9MTAwMDAwMDAwNzsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBHSSAoe2xvbmcgaW50IHQ7c2NhbmYoIiVsZCIsJnQpO3Q7fSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkgLy9zb3J0KGFsbCh4KSkKI2RlZmluZSBzeihoMSkgaDEuc2l6ZSgpCmludCBtLG47CmludCB2aXNpdGVkWzEwMF1bMTAwXTsKY2hhciBjaFsxMDBdWzEwMF07ICAgICAgLy9tYWRlIHRoZSBjaGFyYXRlciBhcnJheSBhcyBhIGdsb2JhbCBhcnJheS5JbiB0aGlzIGFycmF5IG9ubHkgaSBnaXZlIHRoZSBpbnB1dAp2b2lkIERGUyhpbnQgeCxpbnQgeSkKIHsKICAgaWYodmlzaXRlZFt4XVt5XT09MSB8fCBjaFt4XVt5XSA9PSAnfCcpCiAgICAgcmV0dXJuIDsKICAgIHZpc2l0ZWRbeF1beV09MTsKICAgaWYoY2hbeF1beV09PSdKJykvL1NVUFBPU0UgJ0onIHJlcHJlc2VudCBKQUNLIGFuZCB0aGUgJ1InIHJlcHJlc2VudCBST0JvdCBhbmQgdGhlIHJvYmVydCB3YW50cyB0byByZWFjaCB0aGUgamFjay4KICAgICByZXR1cm47CiAgICBpZigoeCsxPG0pKSAvLyd8JyByZXByZXNudHMgYSBibG9jayBhbmQgJy4nIHJlcHJlc250cyBhIHBhdGgtaGVyZSBpIGFtIGNoZWNraW5nIHRoZSBsaW1pdHMKICAgICAgREZTKHgrMSx5KTsKICAgICBpZigoeC0xPj0wKSkKICAgICAgIERGUyh4LTEseSk7CiAgICAgIGlmKCh5KzE8bikpCiAgICAgICBERlMoeCx5KzEpOwogICAgICBpZigoeS0xPj0wKSkKICAgICAgICBERlMoeCx5LTEpOwogICAgICAvLyAgQ0FMTElORyBUSEUgRlVOQ1RJT04gUkVDVVJTSVZFTFkKIAogfQppbnQgbWFpbigpCnsKICBjb3V0PDwiRU50ZXIgdGhlIG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zOiI7CiAgY2luPj5tPj5uOwogIGNvdXQ8PCJFbnRlciB0aGUgZWxlbWVudHM6XG4iOwogIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICBmb3IoaW50IGo9MDtqPG47aisrKQogICAgICBjaW4+PmNoW2ldW2pdOwogCiAgaW50IHg9LTEseT0tMTsKICBmb3IoaW50IGk9MDtpPG07aSsrKQogICAgewogICAgZm9yKGludCBqPTA7ajxuO2orKykKICAgICAgewoJCSAgaWYoY2hbaV1bal09PSdSJykKCQkgIHsKCQkJeD1pLHk9ajsKCQkJYnJlYWs7CgkJICB9CgkgIH0KICAgICAgaWYoeD49MCkKICAgICAgICBicmVhazsKICAgIH0KIAogIERGUyh4LHkpOwogIHg9LTEseT0tMTsKIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICB7CiAgICBmb3IoaW50IGo9MDtqPG47aisrKQogICAgICB7CiAgICAgICAgIGlmKGNoW2ldW2pdPT0nSicpCiAgICAgICAgIHsKICAgICAgICAgICB4PWkseT1qOwogICAgICAgICAgIGJyZWFrOwoJCSB9CiAgICAgIH0KICAgIGlmKHg+PTApICAgIC8vanVzdCB1c2luZyB4IGFzIGZsYWcgdmFyaWFibGUgCiAgICAgIGJyZWFrOwogICAgfQogIGlmKHZpc2l0ZWRbeF1beV09PTEpCiAgICBjb3V0PDwiUk9CT1QgQ0FOIFJFQUNIIFRIRSBCT1NTXG4iOwogIGVsc2UgCiAgICBjb3V0PDwiUk9CT1QgQ0FOTk9UIFJFQUNIIFRIRSBCT1NTXG4iOwpyZXR1cm4gMDsKfQo=