Карта звёздного неба представляет собой прямоугольное поле, состоящее из *n* строк по *m* символов в каждой строке. Каждый символ — это либо «.» (означает пустой участок неба), либо «*» (означает то, что в этом месте на небе есть звезда). 

Новое издание карты звёздного неба будет напечатано на квадратных листах, поэтому требуется найти минимально возможную сторону квадрата, в который могут поместиться все звезды. Границы искомого квадрата должны быть параллельны сторонам заданного прямоугольного поля.
В первой строке входных данных записаны два числа *n* и *m* (1 ≤ *n*, *m* ≤ 1000) — количество строк и столбцов на карте звездного неба.

В следующих *n* строках задано по *m* символов. Каждый символ — это либо «.» (пустой участок неба), либо «*» (звезда).

Гарантируется, что на небе есть хотя бы одна звезда.
Один из возможных ответов на первый тестовый пример:

Один из возможных ответов на второй тестовый пример (обратите внимание, что покрывающий квадрат выходит за пределы карты звездного неба):

Ответ на третий тестовый пример:
4 4
....
..*.
...*
..**
3
1 3
*.*
3
2 1
.
*
1
1 1
*
1
1 2
.*
1
1 2
*.
1
1 2
**
2
2 1
.
*
1
2 1
*
.
1
2 1
*
*
2
5 3
..*
.**
..*
...
..*
5
1 1
*
1
1 2
*.
1
1 2
**
2
1 3
.**
2
1 3
*.*
3
1 4
..**
2
1 4
*..*
4
1 5
.*.**
4
1 5
.*..*
4
2 1
*
.
1
2 1
*
*
2
2 2
.*
..
1
2 2
*.
.*
2
2 3
*..
**.
2
2 3
*..
..*
3
2 4
.***
.*.*
3
2 5
*..**
.*.*.
5
2 5
.....
*.*..
3
3 1
*
*
*
3
3 1
*
.
*
3
3 2
..
..
**
2
3 2
.*
.*
..
2
3 3
*..
.**
***
3
3 4
..*.
....
..*.
3
3 5
.....
.*...
..*..
2
4 1
.
.
*
*
2
4 1
*
.
*
.
3
4 2
*.
*.
.*
**
4
4 2
*.
..
..
.*
4
4 3
..*
...
...
*..
4
4 4
..*.
..*.
.*..
***.
4
4 4
....
...*
....
..*.
3
5 1
*
*
.
.
.
2
5 1
*
.
.
.
*
5
5 2
.*
**
**
..
**
5
5 2
*.
..
..
..
.*
5
5 3
...
***
..*
.**
**.
4
5 3
*..
...
...
...
.*.
5
5 4
*.**
.*..
.*..
..*.
*..*
5
5 4
....
..*.
....
....
..*.
4
5 5
....*
....*
....*
..*..
..*.*
5
2 2
**
**
2
2 2
*.
.*
2
2 2
.*
*.
2
2 2
**
..
2
2 2
..
**
2
2 2
*.
*.
2
2 2
.*
.*
2
2 2
*.
..
1
2 2
.*
..
1
2 2
..
*.
1
2 2
..
.*
1
2 2
.*
**
2
2 2
*.
**
2
2 2
**
.*
2
2 2
**
*.
2
n, m = map(int, input().split())
l = [n, m]
r = [-1, -1]
for i in range(n):
    A = input()
    if A.find('*')!=-1:
        if i < l[0]:
            l[0] = i
        if A.find('*') < l[1]:
            l[1] = A.find('*')
            if i > r[0]:
                r[0] = i
            if A.rfind('*') > r[1]:
                r[1] = A.rfind('*')
print(max(r[0]-l[0]+1, r[1]-l[1]+1))