翻卡牌
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小沙有9张扑克牌,上面分别有 A23456789 各一张,没有 10JQ。其中 A 我们使其为数字 1 ,下文也皆由数字 1 表示。现在小沙将其打乱,排列至一排,全部背置。
小沙手里有一个神秘的魔法,可以对于这九张扑克牌从前往后拼成的九位数,会将其复制一份前后拼接成一个十八位数字,然后获得该数字对 7 取模之后的金币数。
例如小沙手上的扑克牌全部翻开之后为 2 5 4 3 6 7 1 9 8,拼接之后的九位数为 254367198 ,复制一份之后为 254367198254367198 ,对7取模之后为 0,所以小沙无法获得金币。
现在小沙将问题抛给你,小沙会翻开几张(可能是 0 )扑克牌,剩下几张扑克牌仍处于背置状态。小沙想你帮他算一下,剩下的所有可能出现的情况中,小沙赚金币的期望是多少。
答案对  取模,如果是一个分数  ,你需要保证答案 ans 满足 

输入描述:

输出一行长度为9的字符串,其中仅包括数字19,和字符。其中代表该位置未翻开。

输出描述:

输出一个整数代表答案。
示例1

输入

复制
254367?9?

输出

复制
0

说明

无论结果是 254367198还是254367891他们获得的金币都是0个。