n,m=gets.split.map &:to_i a=(1..m).map{gets} (0...m).any?{|x|(0...n).any?{|y|q=(b=a[x][y]==?.)?[x,y]:[] (x=q.shift y=q.shift m.times{|z|n.times{|w|(a[z][w]=?!;q+=[z,w])if (x-z).abs+(y-w).abs<2&&a[z][w]==?.}})while[]!=q b}} c=99 m.times{|x|n.times{|y|m.times{|z|n.times{|w|c=[c,(x-z).abs+(y-w).abs-1].min if a[x][y]==?!&&a[z][w]==?.}}}} p c