**Time limit:**1.00 s**Memory limit:**512 MB

You are given a string consisting of n characters between a and z.

On each turn, you may remove any two adjacent characters that are equal. Your goal is to construct an empty string by removing all the characters.

In how many ways can you do this?

# Input

The only input line has a string of length n.

# Output

Print one integer: the number of ways modulo 10^9+7.

# Constraints

- 1 \le n \le 500

# Example

Input:

aabccb

Output:

3