Гербарій
Школяр отримав завдання зібрати гербарій, що містить щонайменше K листків різних типів дерев. У його розпорядженні є гай, розділений на N рядків, кожен з яких складається з M квадратних ділянок однакового розміру. На кожній ділянці ростуть дерева одного типу.
Школяр вирішив зібрати гербарій, використовуючи квадратний фрагмент гаю. Його цікавить, яка мінімальна кількість ділянок йому потрібно обійти.
Вам потрібно написати програму, яка, знаючи розташування різних типів дерев на ділянках, визначить мінімальний квадратний фрагмент гаю, що дозволяє зібрати гербарій, і підрахує кількість ділянок у цьому фрагменті.
Примітка: школяр обходить всі ділянки квадратного фрагмента гаю.
Вхідні дані
Перша строка містить три цілі числа N, M, K, розділених пробілами (1 ≤ N, M ≤ 100, 1 ≤ K ≤ 10000).
Наступні N рядків містять по M невід'ємних цілих чисел, розділених пробілами. Кожне число вказує на тип дерев, що ростуть на i-й рядку в j-й колонці (1 ≤ i ≤ N, 1 ≤ j ≤ M). Значення номера типу дерева не перевищує 10^9.
Вихідні дані
Вихідний файл повинен містити одне ціле число — кількість ділянок у мінімальному квадратному фрагменті гаю, який школяр має обійти, щоб зібрати гербарій. Гарантується, що існує принаймні один квадратний фрагмент гаю, що підходить школяру.