#include #define rep(i,n) for(int i=0;i ; const int INF = 1e9; const int MOD = 1000000007; int main(){ int h,w; cin >> h >> w; vector moji(h); rep(i,h) cin >> moji[i]; double ans = INF; rep(loc,h){ double res1 = 0,res2 = 0; rep(i,h)rep(j,w){ if(moji[i][j] == '0') continue; res1 += sqrt( (i-loc) * (i-loc) + (j+1) * (j+1) ); res2 += sqrt( (i-loc) * (i-loc) + (w-j) * (w-j) ); } ans = min(ans,min(res1,res2)); } rep(loc,w){ double res1 = 0,res2 = 0; rep(i,h)rep(j,w){ if(moji[i][j] == '0') continue; res1 += sqrt( (i+1) * (i+1) + (j-loc) * (j-loc) ); res2 += sqrt( (h-i) * (h-i) + (j-loc) * (j-loc) ); } ans = min(ans,min(res1,res2)); } cout << setprecision(20) << ans << endl; return 0; }