Михаил наносит ответный удар | 프로그래밍의 벗 PivotOJ
PivotOJ

Михаил наносит ответный удар

시간 제한: 5000ms메모리 제한: 4MB출처: MOOI 2015-16 qualBOJ 30773

문제

Обратите внимание на нестандартное ограничение по памяти в данной задаче.

Вася очень любит участвовать в олимпиадах по информатике. Он уже давно понял, что больше всего ему нравится решать задачи, связанные со строками. Особенное впечатление на него произвела недавно изобретенная структура данных --- дерево палиндромов. Оказалось, что практически любую задачу на строки можно решить с помощью этой поистине всесильной структуры, ведь она умеет находить палиндромы даже там, где их нет и в помине!

Васе никак не удается заставить дерево палиндромов не искать, а создавать палиндромы из строк. А ведь так хочется! При этом, так как Вася очень ценит встречающиеся ему строки, он хочет лишь добавлять в них символы в произвольных местах, но не удалять и не изменять их. Помогите ему найти способ превращать обычные строки в палиндромы!

입력

В первой и единственной строке входных данных содержится непустая строка ss, состоящая из строчных английских букв. Её длина, обозначаемая s|s|, не превышает 1500015\,000 символов.

출력

В первой строке выведите единственное число aa --- минимальное количество символов, которые необходимо добавить в строку ss, чтобы получился палиндром. Во второй строке выведите строку tt, являющуюся палиндромом и получающуюся из ss добавлением указанного Вами числа символов (иными словами, должно быть верно s+a=t|s| + a = |t|).

힌트

Палиндромом называется строка, одинаково читающаяся в обоих направлениях. Так, например, строки "a", "abraarba" являются палиндромами, а "ab" и "abracadabra" нет.

예제

예제 1

입력
ab
출력
1
bab

예제 2

입력
abba
출력
0
abba
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.