벽 속의 또 다른 벽돌

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

오랫동안 벽돌을 쌓아 온 당신에게 벽돌 벽이 얼마나 불안정한지 분석하는 일이 맡겨졌다. 벽의 불안정도는 벽돌 하나를 빼냈을 때 벽이 입는 피해의 최댓값으로 근사한다.

어떤 벽돌은 바로 아래에서 그 벽돌을 받치던 벽돌이 모두 사라지면 떨어진다. 벽돌 아래 공간이 일부만 비어 있으면 그 벽돌은 떨어지지 않는다. 떨어진 벽돌은 그 위의 벽돌을 더 이상 받치지 못하므로 붕괴는 연쇄적으로 이어진다. 맨 아랫줄 벽돌은 바닥에 놓여 있어 떨어지지 않는다.

벽을 이루는 벽돌의 배치가 주어질 때 벽의 불안정도를 구하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 벽의 높이 MM과 너비 NN이 주어진다. (1M,N1001 \le M, N \le 100)

다음 MM개 줄에는 각각 길이가 NN인 숫자 문자열이 주어지며, 벽의 한 행을 나타낸다. 이 중 첫 줄이 벽의 맨 윗줄이고 MM번째 줄이 바닥에 닿는 줄이다. 한 행에서 벽돌 하나는 모든 자리의 숫자가 같고 그 숫자가 길이와 같은 부분 문자열로 나타낸다. 예를 들어 333과 22는 각각 길이가 3과 2인 벽돌 하나지만, 111은 길이가 1인 벽돌 세 개다. 숫자 0은 벽의 그 자리가 비어 있다는 뜻이다. 모든 벽돌의 높이는 1이다.

입력의 마지막 줄에는 0 0이 주어진다. 주어지는 입력은 항상 올바르므로 다음 두 가지가 성립한다.

  1. 행 12221 안의 222처럼 길이와 숫자가 어긋나는 벽돌은 주어지지 않는다.
  2. 벽돌을 빼내기 전에는 떨어지는 벽돌이 없다.

출력

각 테스트 케이스마다 벽돌 하나를 빼냈을 때 떨어지는 벽돌의 길이 합이 최대인 값을 한 줄에 출력한다. 빼낸 벽돌의 길이도 합에 포함한다.