#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i, n) for(int i=0; i<(n); i++) #define FOR(i, m, n) for(int i=(m);i<(n);i++) #define sz(x) ((int)(x).size()) #define all(x) (x).begin(),(x).end() #define SORT(x) sort((x).begin(),(x).end()) #define REVE(x) reverse((x).begin(),(x).end()) #define mp make_pair #define pb push_back typedef vector VI; typedef vector VS; typedef vector> VVI; typedef pair PII; typedef long long LL; int h, w; char p[55][55]; double check(int x, int y) { double re = 0; rep(i, h)rep(j, w)if (p[i][j] == '1')re += sqrt((x - i)*(x - i) + (y - j)*(y - j)); return re; } int main() { cin >> h >> w; rep(i, h)rep(j, w)cin >> p[i][j]; double ans = 1000000; FOR(i, -1, h + 1) { FOR(j, -1, w + 1) { if (i == -1 || j == -1 || i == h || j == w) { double x = check(i, j); if (ans > x)ans = x; //printf("%d,%d -> %d\n", i, j, x); } } } printf("%.12f\n", ans); }