Палиндромы

Строки, которые одинаково читаются слева направо и справа налево, называются палиндромами (например, radar, madam или racecar).
По заданной строке s необходимо определить, сколько существует различных способов получить из неё палиндром, удаляя символы. При этом можно вообще не удалять символы, если строка уже является палиндромом. Порядок, в котором удаляются символы, не имеет значения.

Входные данные

Во входных данных содержится строка s (1 ≤ |s| ≤ 60), состоящая из прописных латинских букв.

Выходные данные

Программа должна вывести количество различных способов получить палиндром из s.

Примеры

Входные данные
Выходные данные
BAOBAB
22

Пояснение

  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
  1. BAOBAB
 
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue