贪心 · 例13-起床困难综合征
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题转译自 [NOI 2014] 起床困难综合症 。
\hspace{15pt}你的最终攻击由 n 组参数共同决定。每组参数包括一个运算 \operatorname{op} 和一个非负整数 t ,其中运算一定是 \operatorname{OR}, \operatorname{XOR}, \operatorname{AND} 中的一种。
\hspace{15pt}你的初始攻击力只能为 0m 之间的一个整数,记为 x_0 ,在第 i 个参数的影响下将变为 x_i = x_{i-1} \operatorname{op}_i t_i
\hspace{15pt}请你计算,你的最终攻击力 x_n 最大会是多少。

\hspace{15pt}其中,\operatorname{OR} 表示按位或运算,\operatorname{XOR} 表示按位异或运算,\operatorname{AND} 表示按位与运算。如果您需要更多位运算相关的知识,可以参考 OI-Wiki的相关章节

输入描述:

\hspace{15pt}第一行输入两个整数 n, m \left(2 \leqq n \leqq 10^5;\ 0 \leqq m \leqq 10^9\right) 代表参数组数、初始攻击力的最大值。
\hspace{15pt}此后 n 行,第 i 行先输入一个字符串 \operatorname{op}_i \big(\operatorname{op}_i \in \{\operatorname{OR}, \operatorname{XOR}, \operatorname{AND}\}\big) 代表运算符号,随后在同一行输入一个整数 t_i \left(0 \leqq t_i \leqq 10^9\right) 代表运算系数。组成第 i 组参数。

输出描述:

\hspace{15pt}在一行上输出一个整数,代表最大的最终攻击力,即 x_n 的最大值。
示例1

输入

复制
3 1
AND 2
OR 4
XOR 8

输出

复制
12

说明

\hspace{15pt}在这个样例中,若 x_0 = 0 ,那么:
\hspace{23pt}\bullet\,经过第一个参数后,x_1 = 0 \operatorname{and} 2 = 0
\hspace{23pt}\bullet\,经过第二个参数后,x_2 = 0 \operatorname{or} 4 = 4
\hspace{23pt}\bullet\,经过第三个参数后,x_3 = 4 \operatorname{xor} 8 = 12

\hspace{15pt}x_0 = 1 ,那么:
\hspace{23pt}\bullet\,经过第一个参数后,x_1 = 1 \operatorname{and} 2 = 0
\hspace{23pt}\bullet\,经过第二个参数后,x_2 = 0 \operatorname{or} 4 = 4
\hspace{23pt}\bullet\,经过第三个参数后,x_3 = 4 \operatorname{xor} 8 = 12

\hspace{15pt}因此,最大的最终攻击力为 12
示例2

输入

复制
3 10
AND 5
OR 6
XOR 7

输出

复制
1