Ви вирішили створити головоломку в рамках кампанії з оновлення бренду вашої компанії. У коробці ця головоломка буде зображати новий логотип компанії, тобто це буде набір з з'єднаних одиничних квадратів на прямокутній сітці. Однак ці квадратів не обов'язково всі складають єдину фігуру; вони можуть формувати кілька з'єднаних частин (але не можна розрізати квадрат посередині). Мета головоломки — переставити ці частини так, щоб вони утворили квадрат 3 \times 3. Дозволяється лише зсувати частини — обертати чи перевертати їх не можна.
Щоб зробити головоломку складнішою, потрібно використати якомога менше частин. Враховуючи логотип, визначте, на скільки частин його потрібно розбити і як ці частини можна переставити в квадрат 3 \times 3.
Скрізь слово "з'єднаний" означає з'єднаність по сторонах.
У першому рядку два цілі числа і . Наступні рядків містять по символів, які описують логотип. Кожен символ — це або "." (крапка), що означає порожній квадрат, або "X" (велика латинська літера X), що означає квадрат, зайнятий логотипом. Всі символи "X" утворюють з'єднану фігуру, і рівно "X" у вхідних даних. У першому, останньому рядках, а також у першому і останньому стовпцях як мінімум одна "X". Тобто немає зайвих порожніх рядків чи стовпців по краях сітки.
У першому рядку виведіть потрібну кількість частин . Далі виведіть один можливий поділ: у наступних рядках виведіть ваш логотип, у якому всі "X" замінені на перші великі літери латинського алфавіту так, щоб кожна літера відповідала одній частині. Далі виведіть порожній рядок і рядки по символи, які зображають ті ж самі частин, пересунуті так, щоб вони складали квадрат 3 \times 3.
Усі частини мають бути з'єднані, і має бути якомога меншим. Якщо існує декілька можливих рішень, виведіть будь-яке.
Приклад 1