졸업식
시간 제한2초메모리 제한1024 MB
각 칸이 학급 문자로 주어진 N×M 격자에서 같은 열이나 같은 학급에 속한 학생은 같은 색을 쓰도록 할 때 가능한 최대 색의 수를 구한다.
문제
학교 운영진이 다가오는 졸업식에서 골치 아픈 문제를 하나 마주쳤다. 여러분이 이 문제를 해결해 주길 바라고 있다. 졸업식에서 학생들은 개의 행에 서고 각 행에는 명의 학생이 있다. 운영진은 졸업식을 최대한 화려하게 만들고 싶어서 학생들에게 여러 가지 색의 모자를 나눠 주려고 한다.
배치가 보기 좋으려면 같은 열에 있는 모든 학생이 같은 색 모자를 써야 한다. 그리고 소외감을 느끼는 학생이 없도록 같은 반 학생도 모두 같은 색 모자를 써야 한다. 각 학생의 행과 열은 이미 정해져 있지만 모자 색은 정해지지 않았다. 운영진은 학생들에게 모자 색을 배정해 졸업식을 최대한 화려하게 만들 방법을 여러분에게 묻고 있다.
졸업식에서 학생들이 어떻게 배치되는지 주어졌을 때, 학생들에게 배정할 수 있는 서로 다른 모자 색의 최대 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 , (), ()가 주어진다. 은 행의 개수, 은 열의 개수, 는 반의 개수이다.
다음 개의 줄에는 각각 개의 문자가 주어지며, 졸업식에서 학생들이 어떻게 배치되는지 나타낸다. 번째 줄의 번째 문자는 A부터 알파벳 번째 글자 사이의 대문자이며, 번째 줄 번째 열에 있는 학생이 속한 반이다. 각 반에는 학생이 적어도 한 명 있다.
출력
같은 열에 있는 모든 학생과 같은 반에 있는 모든 학생이 각각 같은 모자 색을 쓰도록 학생들에게 모자 색을 배정할 때, 서로 다른 모자 색의 최대 개수를 정수로 출력한다.
힌트
첫 번째 예제에서는 둘째 열에 반 A 학생 한 명과 반 B 학생 한 명이 서 있다. 두 학생이 같은 색 모자를 써야 하므로 반 A 전체가 반 B 전체와 같은 색을 써야 한다. 따라서 졸업식에 있는 모든 학생이 같은 색을 써야 하고, 답은 이 된다.
두 번째 예제에서는 첫째 열에 반 A 학생과 반 B 학생이 한 명씩 있으므로 반 A와 반 B가 같은 색을 써야 한다. 반면 반 C는 다른 색 모자를 받을 수 있다. 답은 가 된다.
세 번째 예제에서는 같은 열에 서로 다른 반 학생 두 명이 나타나지 않으므로 각 반에 서로 다른 색을 줄 수 있다. 답은 이 된다.
마지막 예제에서는 반 A, B, C 학생 모두에게 한 색을 주고 반 D, E 학생 모두에게 다른 색을 줄 수 있다. 답은 가 된다.