#include #include int main(void){ int h,w; scanf("%d%d", &h, &w); getchar(); int map[55][55]; for(int i=1; i<=h; i++){ for(int j=1; j<=w+1; j++){ map[i][j]=getchar(); } } double sum=0,rsum=0,min=1000000; for(int k=1; k<=h; k++){ sum=0; rsum=0; for(int i=1; i<=h; i++){ for(int j=1; j<=w; j++){ if(map[i][j]=='1'){ sum += sqrt((double)(k-i)*(k-i) + (double)(j-0)*(j-0)); rsum += sqrt((double)(k-i)*(k-i) + (double)(j-w-1)*(j-w-1)); } } } if(min > sum)min=sum; if(min > rsum)min=rsum; } for(int k=1; k<=w; k++){ sum=0; rsum=0; for(int i=1; i<=h; i++){ for(int j=1; j<=w; j++){ if(map[i][j]=='1'){ sum += sqrt((double)(i-0)*(i-0) + (double)(j-k)*(j-k)); rsum += sqrt((double)(i-h-1)*(i-h-1) + (double)(j-k)*(j-k)); } } } if(min > sum)min=sum; if(min > rsum)min=rsum; } printf("%.8f\n",min); return 0; }