로봇
시간 제한1초메모리 제한1024 MB
장애물이 있는 격자에서 로봇이 직진하다 막히면 오른쪽으로 90도 돌기를 반복합니다. 빈 칸 어디에서 어느 방향으로 출발하든 청소할 수 있는 최대 칸 수를 구합니다.
문제
로마스는 청소를 좋아하지 않아서 자율 주행 로봇 청소기를 샀다. 다만 이 로봇은 단순하다. 청소할 때 로봇은 장애물(가구나 벽 등)에 부딪힐 때까지 직진한다. 장애물에 부딪히면 오른쪽으로 90도 회전하고 같은 동작을 반복한다.
로마스의 집 평면도는 격자로 나타낼 수 있다. 각 칸은 청소할 수 있는 빈 칸이거나 장애물이 있는 칸이다. 로봇은 격자의 변과 평행하게 움직인다.
로마스는 출근하기 전에 로봇을 켜 둔다. 퇴근 후에는 청소된 면적이 가장 넓기를 바란다.
로봇은 빈 칸 중 어느 곳에서든 출발할 수 있으며, 출발 방향은 위, 아래, 왼쪽, 오른쪽 중 자유롭게 고를 수 있다. 로봇이 청소할 수 있는 최대 면적을 구하시오.
입력
첫 줄에 평면도의 크기 과 이 공백으로 구분되어 주어진다. 이어지는 개의 줄에는 평면도가 주어지며, 각 줄은 개의 문자로 이루어진다. .은 빈 칸을, #은 장애물을 나타낸다. 모든 테두리 칸은 장애물이고, 빈 칸은 적어도 하나 있다.
출력
청소할 수 있는 칸 수의 최댓값을 정수 하나로 출력한다.