Изображение и Тень
Чтобы усложнить машинное распознавание символов в системе "CAPTCHA" (Completely Automated Public Turing test to tell Computers and Humans Apart), применяются различные преобразования. Одним из таких преобразований является "падение тени", при котором символ смещается и накладывается на себя. Например, на изображении ниже показан процесс падения тени с буквой "S" для изображения размером 8×8.
Рассмотрим изображение размером 16×16. Начало координат находится в верхнем левом углу, горизонтальная ось x измеряется слева направо, а вертикальная ось y — сверху вниз. Вектор (x, y) обозначает смещение изображения и называется вектором сдвига. На изображении выше вектор сдвига равен (3, 1), что означает смещение изображения на 3 точки вправо и на одну вниз. Исходное изображение без наложенной тени называется изображением, а модифицированное изображение — изображением с тенью. Мы также договоримся, что вектор сдвига выбирается так, чтобы затенённая (чёрная) точка изображения не выходила за пределы квадрата 16×16.
Ваша задача — написать программу, которая выполняет обратное преобразование: по изображению с тенью определить исходное изображение и вектор сдвига с минимальным количеством затенённых (чёрных) точек. Если таких изображений несколько, можно вывести любое из них.
Ограничения. Вектор сдвига ограничен так, чтобы чёрная точка изображения не выходила за пределы квадрата 16×16. -15 ≤ x, y ≤ 15.
Входные данные
Входной файл содержит изображение с тенью, состоящее из 16 строк, каждая из которых содержит ровно 16 символов. Пустая (белая) точка обозначается символом "." (ASCII = 2Eh), затенённая точка обозначается символом "#" (ASCII = 23h).
Выходные данные
Первая строка выходного файла должна содержать два целых числа x и y (вектор сдвига), разделённых пробелом. Затем должно следовать 16 строк по 16 символов каждая — изображение, закодированное так же, как во входном файле.