Problem:
Score : 400 points

Problem Statement

We have a string s consisting of lowercase English letters.
Snuke can perform the following operation repeatedly:

Insert a letter x to any position in s of his choice, including the beginning and end of s.

Snuke's objective is to turn s into a palindrome.
Determine whether the objective is achievable. If it is achievable, find the minimum number of operations required.

Notes

A palindrome is a string that reads the same forward and backward.
For example, a, aa, abba and abcba are palindromes, while ab, abab and abcda are not.

Constraints

1 \leq |s| \leq 10^5

s consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s

Output

If the objective is achievable, print the number of operations required.
If it is not, print -1 instead.

Sample Input 1

xabxa

Sample Output 1

2

One solution is as follows (newly inserted x are shown in bold):

xabxa → xaxbxa → xaxbxax

Sample Input 2

ab

Sample Output 2

-1

No sequence of operations can turn s into a palindrome.

Sample Input 3

a

Sample Output 3

0

s is a palindrome already at the beginning.

Sample Input 4

oxxx

Sample Output 4

3

One solution is as follows:

oxxx → xoxxx → xxoxxx → xxxoxxx

Solution in Fortran (gfortran v4.8.4) (judge verdict: Accepted)

program code_festival_2017_qualc_c
    use,intrinsic :: iso_fortran_env
    implicit none
    character(100000):: s, nox_s
    integer(int32):: ls, lnxs,i,j,ans

    read*, s
    ls = len_trim(s)
    nox_s = ''
    do i=1,ls
        if (s(i:i) == 'x') cycle
        nox_s = trim(nox_s) // s(i:i)
    end do
    lnxs = len_trim(nox_s)
    i=1
    j=lnxs

    do while(i <= j)
        if (nox_s(i:i) /= nox_s(j:j)) then
            print'(i0)', -1
            stop
        end if
        i=i+1
        j=j-1
    end do

    ans=0
    i=1
    j=ls
    do while(i <= j)
        if (s(i:i) == s(j:j)) then
            i=i+1
            j=j-1
            cycle
        else if (s(i:i) == 'x') then
            ans=ans+1
            i=i+1
        else
            j=j-1
            ans=ans+1
        end if
    end do
    print'(i0)', ans
end program code_festival_2017_qualc_c