아벨리노의 집 벽 하나에는 모자이크가 있다. 아주 오래된 모자이크로, 작은 색 타일을 촘촘히 붙여 만들었다. 세월이 지나면서 타일 몇 개가 떨어져 구멍이 생겼다.
아벨리노는 구멍을 새 타일로 덮어 모자이크를 복원하려고 한다. 비용을 아끼려고 구멍은 한 가지 색 타일로만 메운다. 이때 모자이크에 이미 있는 색 하나를 고르거나, 모자이크에 없는 색 하나를 고른다.
모자이크인 만큼 같은 색이 넓게 이어지는 것은 좋지 않다. 아벨리노는 세밀한 느낌을 살리려고 가장 작은 단색 영역의 크기가 최소가 되도록 색을 고른다. 그 최솟값을 만드는 색이 여러 개일 수도 있다. 영역에 속한 타일이 모두 같은 색이면 그 영역은 단색이다. 인접한 두 타일은 색이 같으면 같은 영역에 속하고, 두 타일은 변을 맞대고 있으면 인접하다.
첫 번째 예제를 보자. 색 1인 영역이 세 개(크기 3인 것 하나, 크기 2인 것 둘), 색 2인 영역이 하나(크기 3), 색 3인 영역이 하나(크기 7) 있다. 색 2를 고르면 가장 작은 단색 영역의 크기가 2가 된다. 색 1을 고르면 3이 된다.
가장 작은 단색 영역의 크기로 만들 수 있는 최솟값을 출력하는 프로그램을 작성하라.