Type: Default 2000ms 256MiB

序列

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

Problem Description

对于一个 1∼31 \sim 3 的排列 p1,p2,p3p1,p2,p3,一个 0 操作表示交换 p1,p2p1,p2,一个 1 操作表示交换 p2,p3p2,p3。一个 01 操作序列是好的,当且仅当对于初始排列 p=1,2,3p={1,2,3},依次执行每个操作后,得到的排列还是 {1,2,3}\{1,2,3\}。

给定一个包含 0,1,?的字符串以及正整数 N,MN,M,求有多少种把 ? 替换为 0或 1 的方案数,使得该字符串恰好有 NN 个 0 和 MM 个 1,且对应的操作序列是好的。答案对 109+710^9+7 取模。

Input Format

第一行:两个正整数 N,MN, M 。

第二行:一个长度为 N+MN+M 的字符串,由 0,1,? 构成。

Output Format

一行一个整数,表示答案。

Sample

样例输入1

2 4
0??1??

样例输出1

2

样例解释1

共有两种方案,分别为 001111和 011110。

样例输入2

6 10
???0??????111??1

样例输出2

201

Hint

对于所有数据,满足 1≤N,M≤1061\leq N,M\leq 10^6。