Subsequences of Subsequences#9095

Subsequences of Subsequences

0.1 seconds
64 megabytes
Very easy

You are given a string consisting of lowercase Latin letters. Your task is to determine the number of good non-empty subsequences in this string.

A subsequence is called good if every non-empty subsequence of it is a palindrome.

Two subsequences are considered distinct if they are obtained by removing characters at different indices. That is, even if the resulting subsequences are identical as strings, they are considered different if the indices of the removed characters differ.

Input

The first line contains the string (1 \leq |s| \leq 10^5), where all characters are lowercase Latin letters.

Output

Output a single integer — the number of good non-empty subsequences of string , modulo 10^9+7 ().

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading

Note

In the first example, there are 4 good subsequences: "a", "b", "c", "d".