천공 카드
시간 제한1초메모리 제한256 MB
펀치 카드에서 표시된 칸만 정확히 뚫고 빈 칸은 건드리지 않는 직사각형 스탬프 중 면적이 가장 큰 크기를 구합니다.
문제
1960년대의 한 프로그래머는 키보드 대신 천공 카드로 프로그램을 컴퓨터에 입력한다. 크기가 인 카드는 개의 열과 개의 행으로 배열된 개의 동일한 직사각형 칸으로 이루어진다. 각 칸에는 구멍을 뚫을 수 있으며, 구멍의 배치가 프로그램의 내용을 나타낸다.

프로그래머는 어떤 칸에 구멍을 뚫어야 하는지 이미 정확히 알고 있다. 카드를 효율적으로 만들기 위해 직사각형 도장(매트릭스) 하나를 제작한다. 이 도장을 카드에 찍으면 선택한 블록(연속한 개의 행과 연속한 개의 열이 만나는 부분)에 속한 모든 칸에 구멍이 뚫린다. 도장은 카드 안에 완전히 들어가는 위치라면 어디에서든 원하는 만큼 여러 번 찍을 수 있지만, 뚫으면 안 되는 칸을 절대 뚫어서는 안 된다. 오직 이 도장 하나만 사용해서 완성한 카드에는 계획한 위치에만 정확히 구멍이 있어야 한다.
칸이 정사각형이 아니므로 도장을 회전할 수 없다. 즉 도장을 로 돌려 쓸 수 없다. 카드를 만들 수 있는 모든 도장 중에서 프로그래머는 가능한 한 큰 도장을 원한다. 사용할 수 있는 가장 큰 도장의 크기를 구하라.
입력
첫째 줄에 카드의 행 수와 열 수를 나타내는 두 정수 과 이 주어진다 (). 다음 개의 줄에는 각각 한 행을 나타내는 개의 문자가 주어진다. 문자 X 는 구멍을 뚫어야 하는 칸을, _ 는 뚫지 않아야 하는 칸을 뜻한다. 카드에는 X 로 표시된 칸이 적어도 하나 있다.
출력
도장의 크기를 나타내는 두 정수 와 를 이 순서(행의 수, 그다음 열의 수)로 출력한다. 이 도장으로 입력에 주어진 카드를 만들 수 있어야 하며, 곱 가 가능한 한 커야 한다. 최대 곱을 이루는 도장이 여럿이면 가 가장 작은 것을 출력한다.