#abc249g. [abc249_g]Xor Cards

[abc249_g]Xor Cards

题目描述

NN 张卡片,编号为 1,,N1, \dots, N。第 ii 张卡片 (1iN)(1 \leq i \leq N) 的正面写有整数 AiA_i,背面写有整数 BiB_i

考虑选择一张或多张卡片,使得所选卡片正面的整数的异或和不超过 KK。找到所选卡片背面整数的最大可能异或和。

什么是异或和?两个整数 aabb 的异或和 aba \oplus b 定义如下。

  • 二进制表示中,对于异或和 aba \oplus b2k2^k 位(k0k \geq 0),如果 aabb2k2^k 位中恰好有一个位是 11,则 aba \oplus b 的该位为 11;否则,该位为 00

例如,35=63 \oplus 5 = 6(二进制表示:011101=110011 \oplus 101 = 110)。
通常情况下,kk 个整数 p1,,pkp_1, \dots, p_k 的异或和被定义为 (((p1p2)p3)pk)(\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)。我们可以证明它与 p1,,pkp_1, \dots, p_k 的顺序无关。

约束条件

  • 1N10001 \leq N \leq 1000
  • 0K<2300 \leq K \lt 2^{30}
  • 0Ai,Bi<230(1iN)0 \leq A_i, B_i \lt 2^{30} \, (1 \leq i \leq N)
  • 输入的所有值都是整数。

输入

输入数据从标准输入获得,格式如下:

NN KK A1A_1 B1B_1 \vdots ANA_N BNB_N

输出

打印选择一张或多张卡片,使得所选卡片正面的整数异或和不超过 KK 的条件下,背面整数的最大可能异或和。如果无法按照条件选择卡片,则输出 1-1


示例输入 1

4 2
1 1
3 2
2 2
0 1

示例输出 1

选择卡片 1122,它们正面整数的异或和为 22,背面整数的异或和为 33,这是最大值。


示例输入 2

1 2
3 4

示例输出 2

-1

无法满足条件选择卡片的情况。


示例输入 3

10 326872757
487274679 568989827
267359104 968688210
669234369 189421955
1044049637 253386228
202278801 233212012
436646715 769734012
478066962 376960084
491389944 1033137442
214977048 1051768288
803550682 1053605300

示例输出 3

1064164329