#include #include #include using namespace std; int a[101][101],N,M; queue > Q; void sari(int i,int j,int k) { if(i >= 1 && i <= N && j >= 1 && j <= M && a[i][j] != -1) /// we r in matrix { if(a[i][j] < k) { a[i][j] = k; Q.push(make_pair(i,j)); } } } void Fill(int i,int j) { Q.push(make_pair(i,j)); a[i][j] = 1; int k; while(!Q.empty()) { i = Q.front().first; j = Q.front().second; k = a[i][j]; Q.pop(); sari(i,j+1,k+1); sari(i+1,j,k+1); } } int main() { //freopen("run.in","r",stdin); //freopen("run.out","w",stdout); char c; scanf("%d%d\n",&N,&M); for(int i = 1; i <= N; ++i) { for(int j = 1;j <= M; ++j) { c = fgetc(stdin); if(c == '&') a[i][j] = -1; } c = fgetc(stdin);/// biec sleashu } Fill(1,1); int best = -1; for(int i = 1; i <= N; ++i) { for(int j = 1;j <= M; ++j) { // printf("%d ",a[i][j]); best = max (best , a[i][j]); } //printf(" \n"); } printf("%d",best); return 0; }