Palíndromos

Strings que se leem da mesma forma da esquerda para a direita e da direita para a esquerda são chamadas de palíndromos (radar, madam, ou racecar).

Dada uma string s, pretende-se descobrir quantas formas distintas se podem obter um palíndromo a partir de s removendo caracteres. É possível não remover nenhum caractere e, ainda assim, formar um palíndromo. A ordem em que os caracteres são removidos não influencia o resultado final.

Entrada

A entrada contém a string s (1 ≤ |s| ≤ 60), composta por letras maiúsculas do alfabeto latino.

Saída

O programa deve mostrar o número de formas diferentes de obter um palíndromo a partir de s.

Exemplos

Input

Output

BAOBAB

22

Explicação

  1. BAOBAB

  2. BAOBAB

  3. BAOBAB

  4. BAOBAB

  5. BAOBAB

  6. BAOBAB

  7. BAOBAB

  8. BAOBAB

  9. BAOBAB

  10. BAOBAB

  11. BAOBAB

  12. BAOBAB

  13. BAOBAB

  14. BAOBAB

  15. BAOBAB

  16. BAOBAB

  17. BAOBAB

  18. BAOBAB

  19. BAOBAB

  20. BAOBAB

  21. BAOBAB

  22. 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