每年夏天,Stelinuța 都会去塞浦路斯参加为期 11 天的编程夏令营,在那里她喜欢去海里游泳和浮潜。
有一天,当她在浮潜时,她发现了一条非常有趣的珍珠项链:一条直的(非循环的)串着珍珠的线。最初,所有的珍珠要么是黑色的,要么是白色的。然而,有些珍珠受损严重,以至于她甚至无法分辨它们原本的颜色。
由此,Stelinuța 产生了一个想法:想象你可以从项链中移除任何两个颜色相同的相邻珍珠。她很好奇,原先的项链有多少种可能的颜色组合,使得在进行任意次数该操作后,她最终能得到一条空的项链。由于答案可能非常大,只需输出其对 $998\,244\,353$ 取模的结果。
输入格式
第一行包含一个由 “1”、“0” 和 “?” 组成的字符串,描述了 Stelinuța 发现的项链。每颗珍珠的表示如下:
- “1”:珍珠是黑色的。
- “0”:珍珠是白色的。
- “?”:珍珠原本的颜色未知。
字符串的长度至少为 $1$,至多为 $2 \cdot 10^5$。
输出格式
输出一个整数:原项链可能的颜色组合数,对 $998\,244\,353$ 取模。
样例
样例输入 1
01?1??
样例输出 1
1
说明
在给出的样例中,项链唯一可能的颜色组合是 “011110”。我们可以移除两次 “11”,然后移除剩下的 “00” 得到一条空项链。
对于所有其他可能的赋值,不存在通过重复移除两个相邻的同色珍珠来移除所有珍珠的方法。