Секретний бункер
Існує план секретного бункера у вигляді прямокутного поля, де місцезнаходження бомб позначено символом '*', секретних об'єктів — символом '?', а порожні клітини — символом '.'. У разі небезпеки підрив будь-якої бомби повинен призводити до знищення всіх секретних об'єктів. Бомба при вибуху знищує всі об'єкти, для яких відстань від центру клітини з бомбою до центру клітини з об'єктом менша або дорівнює D. Якщо в межах дії бомби знаходиться інша бомба, вона також вибухає.
Напишіть програму, яка обчислює мінімальне значення D, при якому вибух будь-якої бомби призводить до знищення всіх секретних об'єктів.
Вхідні дані
У вхідному файлі міститься кілька тестів. У першому рядку кожного тесту наведено два цілих числа N і M, розділені пробілом, — розміри плану бункера (1 ≤ N ≤ 50, 1 ≤ M ≤ 50). Далі йдуть N рядків, кожен з яких містить M символів '.', '*' і '?'. План містить від 1 до 100 символів '?' і від 1 до 100 символів '*'. Рядок, що містить "0 0", сигналізує про завершення набору тестів і не обробляється.
Вихідні дані
У вихідний файл для кожного тесту виведіть рядок, що містить одне дійсне число — мінімальне значення D для відповідного плану з точністю 10^{−6}.