美丽的字符串
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于一个字符串 S , 若 S 中某个长度为 10 的子串是字母表中升序连续的 10 个字母,则我们称 S 为“美丽的字符串”。

现给定一个字符串 PP 只包含 26 个小写英文字母和字符`?`。对于 P 中的每一个字符`?`,你需要用 26 个小写英文字母中的一个进行替换。对于替换完之后的字符串称为 R 。那么使得 R 为“美丽的字符串”的填充方案一共有多少种?由于答案可能过大,所以输出它对 1000000007 取模的结果。

输入描述:

第一行,输入一个字符串 S(1 \leq |S| \leq 10^3)

输出描述:

一行,表示答案。
示例1

输入

复制
a?????????

输出

复制
1

说明

只有一种情况,S 被填充为 abcdefghij