#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void findEle(vector<vector<char>> locationMap,int leftC,int topC,int bottomC,int rightC)
{
int rows = locationMap.size();
int cols = locationMap[0].size();
vector<vector<int>> left(rows,vector<int>(cols,0));
vector<vector<int>> right(rows,vector<int>(cols,0));
vector<vector<int>> top(rows,vector<int>(cols,0));
vector<vector<int>> bottom(rows,vector<int>(cols,0));
for(int i=0;i<rows;i++)
{
if(locationMap[i][0]=='E' || locationMap[i][0]=='O')
{
left[i][0]=1;
}
for(int j=1;j<cols;j++)
{
if(locationMap[i][j]=='E' || locationMap[i][j]=='O')
{
left[i][j]=left[i][j-1]+1;
}
else
{
left[i][j]=0;
}
}
}
for(int i=0;i<rows;i++)
{
if(locationMap[i][cols-1]=='E' || locationMap[i][cols-1]=='O')
{
right[i][cols-1]=1;
}
for(int j=cols-2;j>=0;j--)
{
if(locationMap[i][j]=='E' || locationMap[i][j]=='O')
{
right[i][j]=right[i][j+1]+1;
}
else
{
right[i][j]=0;
}
}
}
for(int j=0;j<cols;j++)
{
if(locationMap[0][j]=='E' || locationMap[0][j]=='O')
{
top[0][j]=1;
}
for(int i=1;i<rows;i++)
{
if(locationMap[i][j]=='E' || locationMap[i][j]=='O')
{
top[i][j]=top[i-1][j]+1;
}
else
{
top[i][j]=0;
}
}
}
for(int j=0;j<cols;j++)
{
if(locationMap[rows-1][j]=='E' || locationMap[rows-1][j]=='O')
{
bottom[rows-1][j]=1;
}
for(int i=rows-2;i>=0;i--)
{
if(locationMap[i][j]=='E' || locationMap[i][j]=='O')
{
bottom[i][j]=bottom[i+1][j]+1;
}
else
{
bottom[i][j]=0;
}
}
}
int found =0;
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(left[i][j]==leftC && right[i][j]==rightC && bottom[i][j]==bottomC && top[i][j]==topC && locationMap[i][j]=='O' )
{
cout<<i<<"->"<<j;
found=1;
break;
}
}
}
if(found==0)
{
cout<<"Not found";
}
}
int main() {
// your code goes here
vector<vector<char>> locationMap = {
{'O', 'E', 'E', 'E', 'X'},
{'E', 'O', 'X', 'X', 'X'},
{'E', 'E', 'E', 'E', 'E'},
{'X', 'E', 'O', 'E', 'E'},
{'X', 'E', 'X', 'E', 'X'}
};
findEle(locationMap,2,2,1,3);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBmaW5kRWxlKHZlY3Rvcjx2ZWN0b3I8Y2hhcj4+IGxvY2F0aW9uTWFwLGludCBsZWZ0QyxpbnQgdG9wQyxpbnQgYm90dG9tQyxpbnQgcmlnaHRDKQp7CglpbnQgcm93cyA9IGxvY2F0aW9uTWFwLnNpemUoKTsKCWludCBjb2xzID0gbG9jYXRpb25NYXBbMF0uc2l6ZSgpOwoJdmVjdG9yPHZlY3RvcjxpbnQ+PiBsZWZ0KHJvd3MsdmVjdG9yPGludD4oY29scywwKSk7Cgl2ZWN0b3I8dmVjdG9yPGludD4+IHJpZ2h0KHJvd3MsdmVjdG9yPGludD4oY29scywwKSk7Cgl2ZWN0b3I8dmVjdG9yPGludD4+IHRvcChyb3dzLHZlY3RvcjxpbnQ+KGNvbHMsMCkpOwoJdmVjdG9yPHZlY3RvcjxpbnQ+PiBib3R0b20ocm93cyx2ZWN0b3I8aW50Pihjb2xzLDApKTsKCQoJZm9yKGludCBpPTA7aTxyb3dzO2krKykKCXsKCQlpZihsb2NhdGlvbk1hcFtpXVswXT09J0UnIHx8IGxvY2F0aW9uTWFwW2ldWzBdPT0nTycpCgkJewoJCQlsZWZ0W2ldWzBdPTE7CgkJfQoJCWZvcihpbnQgaj0xO2o8Y29scztqKyspCgkJewoJCQlpZihsb2NhdGlvbk1hcFtpXVtqXT09J0UnIHx8IGxvY2F0aW9uTWFwW2ldW2pdPT0nTycpCgkJewoJCQlsZWZ0W2ldW2pdPWxlZnRbaV1bai0xXSsxOwoJCX0KCQllbHNlCgkJewoJCQlsZWZ0W2ldW2pdPTA7CgkJfQoJCQkKCQl9Cgl9Cglmb3IoaW50IGk9MDtpPHJvd3M7aSsrKQoJewoJCWlmKGxvY2F0aW9uTWFwW2ldW2NvbHMtMV09PSdFJyB8fCBsb2NhdGlvbk1hcFtpXVtjb2xzLTFdPT0nTycpCgkJewoJCQlyaWdodFtpXVtjb2xzLTFdPTE7CgkJfQoJCWZvcihpbnQgaj1jb2xzLTI7aj49MDtqLS0pCgkJewoJCQlpZihsb2NhdGlvbk1hcFtpXVtqXT09J0UnIHx8IGxvY2F0aW9uTWFwW2ldW2pdPT0nTycpCgkJewoJCQlyaWdodFtpXVtqXT1yaWdodFtpXVtqKzFdKzE7CgkJfQoJCWVsc2UKCQl7CgkJCXJpZ2h0W2ldW2pdPTA7CgkJfQoJCQkKCQl9Cgl9CgkKCWZvcihpbnQgaj0wO2o8Y29scztqKyspCgl7CgkJaWYobG9jYXRpb25NYXBbMF1bal09PSdFJyB8fCBsb2NhdGlvbk1hcFswXVtqXT09J08nKQoJCXsKCQkJdG9wWzBdW2pdPTE7CgkJfQoJCWZvcihpbnQgaT0xO2k8cm93cztpKyspCgkJewoJCQlpZihsb2NhdGlvbk1hcFtpXVtqXT09J0UnIHx8IGxvY2F0aW9uTWFwW2ldW2pdPT0nTycpCgkJewoJCQl0b3BbaV1bal09dG9wW2ktMV1bal0rMTsKCQl9CgkJZWxzZQoJCXsKCQkJdG9wW2ldW2pdPTA7CgkJfQoJCQkKCQl9Cgl9CgkKCWZvcihpbnQgaj0wO2o8Y29scztqKyspCgl7CgkJaWYobG9jYXRpb25NYXBbcm93cy0xXVtqXT09J0UnIHx8IGxvY2F0aW9uTWFwW3Jvd3MtMV1bal09PSdPJykKCQl7CgkJCWJvdHRvbVtyb3dzLTFdW2pdPTE7CgkJfQoJCWZvcihpbnQgaT1yb3dzLTI7aT49MDtpLS0pCgkJewoJCQlpZihsb2NhdGlvbk1hcFtpXVtqXT09J0UnIHx8IGxvY2F0aW9uTWFwW2ldW2pdPT0nTycpCgkJewoJCQlib3R0b21baV1bal09Ym90dG9tW2krMV1bal0rMTsKCQl9CgkJZWxzZQoJCXsKCQkJYm90dG9tW2ldW2pdPTA7CgkJfQoJCQkKCQl9Cgl9CglpbnQgZm91bmQgPTA7Cglmb3IoaW50IGk9MDtpPHJvd3M7aSsrKQoJewoJCWZvcihpbnQgaj0wO2o8Y29scztqKyspCgkJewoJCQlpZihsZWZ0W2ldW2pdPT1sZWZ0QyAmJiByaWdodFtpXVtqXT09cmlnaHRDICYmIGJvdHRvbVtpXVtqXT09Ym90dG9tQyAmJiB0b3BbaV1bal09PXRvcEMgJiYgbG9jYXRpb25NYXBbaV1bal09PSdPJyApCgkJCXsKCQkJCWNvdXQ8PGk8PCItPiI8PGo7CgkJCQlmb3VuZD0xOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9CglpZihmb3VuZD09MCkKCXsKCQljb3V0PDwiTm90IGZvdW5kIjsKCX0KfQppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3Rvcjx2ZWN0b3I8Y2hhcj4+IGxvY2F0aW9uTWFwID0gewogICAgeydPJywgJ0UnLCAnRScsICdFJywgJ1gnfSwKICAgIHsnRScsICdPJywgJ1gnLCAnWCcsICdYJ30sCiAgICB7J0UnLCAnRScsICdFJywgJ0UnLCAnRSd9LAogICAgeydYJywgJ0UnLCAnTycsICdFJywgJ0UnfSwKICAgIHsnWCcsICdFJywgJ1gnLCAnRScsICdYJ30KfTsKZmluZEVsZShsb2NhdGlvbk1hcCwyLDIsMSwzKTsKCXJldHVybiAwOwp9