#3215. 「NOI2014」起床困难综合症 暂未评定

时间限制:1000 ms 内存限制:256 MiB 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: root

题目描述

21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争。通过研究相关文献,他找到了该病的发病原因:在深邃的太平洋海底中,出现了一条名为 drd 的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间。正是由于 drd 的活动,起床困难综合症愈演愈烈,以惊人的速度在世界上传播。为了彻底消灭这种病,atm 决定前往海底,消灭这条恶龙。

历经千辛万苦,atm 终于来到了 drd 所在的地方,准备与其展开艰苦卓绝的战斗。drd 有着十分特殊的技能,他的防御战线能够使用一定的运算来改变他受到的伤害。具体说来,drd 的防御战线由 扇防御门组成。每扇防御门包括一个运算 和一个参数 ,其中运算一定是 ORXORAND 中的一种,参数则一定为非负整数。如果还未通过防御门时攻击力为 ,则其通过这扇防御门后攻击力将变为 。最终 drd 受到的伤害为对方初始攻击力 依次经过所有 扇防御门后转变得到的攻击力。

由于 atm 水平有限,他的初始攻击力只能为 之间的一个整数(即他的初始攻击力只能在 中任选,但在通过防御门之后的攻击力不受 的限制)。为了节省体力,他希望通过选择合适的初始攻击力使得他的攻击能让 drd 受到最大的伤害,请你帮他计算一下,他的一次攻击最多能使 drd 受到多少伤害。

输入格式

第一行包含两个整数,依次为 ,表示 drd 有 扇防御门,atm 的初始攻击力为 之间的整数。
接下来 行,依次表示每一扇防御门。每行包括一个字符串 和一个非负整数 ,两者由一个空格隔开,且 在前, 在后, 表示该防御门所对应的操作, 表示对应的参数。

输出格式

一行一个整数,表示 atm 的一次攻击最多使 drd 受到多少伤害。

样例

样例输入

3 10
AND 5
OR 6
XOR 7

样例输出

1

样例解释

假设初始攻击力为 ,最终攻击力经过了如下计算:

类似地,我们可以计算出初始攻击力为 时最终攻击力为 ,初始攻击力为 时最终攻击力为 ,因此 atm 的一次攻击最多使 drd 受到的伤害值为

数据范围与提示

Case # 的规模 附加限制
1 -
2
3
4 存在一扇防御门为 AND 0
5 所有防御门的操作均相同
6 -
7 所有防御门的操作均相同
8 -
9
10

对于所有测试点, 一定为 ORXORAND 中的一种。


在本题中,选手需要先将数字变换为二进制后再进行计算。如果操作的两个数二进制长度不同,则在前补 至相同长度。

  • OR 为按位或运算,处理两个长度相同的二进制数,两个相应的二进制位中只要有一个为 ,则该位的结果值为 ,否则为
  • XOR 为按位异或运算,对等长二进制模式或二进制数的每一位执行逻辑异或操作。如果两个相应的二进制位不同(相异),则该位的结果值为 ,否则该位为
  • AND 为按位与运算,处理两个长度相同的二进制数,两个相应的二进制位都为 ,该位的结果值才为 ,否则为

例如,我们将十进制数 与十进制数 分别进行 ORXORAND 运算,可以得到如下结果:

    0101 (十进制 5)
 OR 0011 (十进制 3)
  = 0111 (十进制 7)
    0101 (十进制 5)
XOR 0011 (十进制 3)
  = 0110 (十进制 6)
    0101 (十进制 5)
AND 0011 (十进制 3)
  = 0001 (十进制 1)