小红的字符串同构
题号:NC266120
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红定义两个字符串同构,当且仅当对于i∈[1,n],b[i]-a[i]是定值。例如,"bacd"和"edfg"是同构的。

现在小红拿到了一个长度为n的字符串a,她想知道,有多少长度为n的字符串b同时满足以下两个条件:
1.b的每一位都和a不同。
2.ba不同构。

输入描述:

输入一个仅由英文小写字母组成的字符串,代表字符串a
字符串长度不超过10^5

输出描述:

一个整数,代表合法的字符串b的数量。由于答案过大,请对10^9+7取模。
示例1

输入

复制
a

输出

复制
0

说明

任意长度为1的字符串都和"a"同构。
示例2

输入

复制
ab

输出

复制
601