eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Раздел королевства

Раздел королевства

Правивший много лет король Байтландии Байтазар Большое Гнездо задумал приучить своих наследников к государственным делам. Для этого он собирается разделить своё королевство на герцогства и распределить между своими сыновьями. Проблема заключается в том, что детей у Байтазара много... реально много. Для того, чтобы не провоцировать споров о старшинстве, Байтазар решил, что герцогства будут иметь попарно различную площадь. При этом некоторую часть младших наследников при необходимости можно оставить и без герцогства. Королевство можно представить как прямоугольник \textbf{n}×\textbf{m}, разбитый на \textbf{n·m} единичных квадратов. Каждое герцогство должно быть составлено из целого числа единичных квадратов и должно быть связным по стороне (то есть между каждыми двумя единичными квадратами, входящими в герцогство, существует путь, полностью составленный из входящих в герцогство единичных квадратов, в котором каждый следующий квадрат имеет с предыдущим общую сторону). Каждый квадрат должен принадлежать ровно одному герцогству. Король планирует разделить королевство так, чтобы как можно большее количество наследников получило свои герцогства. Помогите ему сделать это. \InputFile Единственная строка входа содержит два целых числа \textbf{n} и \textbf{m} (\textbf{1} ≤ \textbf{n}, \textbf{m} ≤ \textbf{1000}), обозначающие размеры прямоугольника. \OutputFile В первой строке выведите одно целое число \textbf{k}: наибольшее количество наследников, которые могут получить своё герцогство. Каждая из последующих \textbf{n} строк должна содержать по \textbf{m} символов - заглавных латинских букв из множества \textbf{\{A, ..., Z\}} - отображения герцогств. Отдельному герцогству соответствует связная часть, составленная из одинаковых букв и граничащая по сторонам только с частями, обозначенными другими буквами. Отметим, что различные части при этом вполне могут быть обозначены одной и той же буквой. При этом для любых двух частей количество составляющих эти части букв должно быть различно. Гарантируется, что для любого соответствующего условиям задачи разбиения существует способ обозначить вышеописанным образом его части, использовав не более чем \textbf{26} букв.
Ліміт часу 2 секунди
Ліміт використання пам'яті 512 MiB
Вхідні дані #1
4 5
Вихідні дані #1
5
ABBCC
DDDDC
EEEEE
EEEEE
Джерело Yandex.Algorithm, Online Round 1, July 14, 2013