#LX0021. 与或

与或

题目描述

小明,没错又是小明。

他有一个长度为nn的数组,还有kk个运算符| 以及nk1n-k-1个运算符&。此处andor就是二进制下的与以及或操作。

小明需要把这nn个数用上述n1n-1个符号从左到右连接起来,然后从左到右计算结果。

显然,不同的安排方式可能导致不同的结果。

例如 a=[1,2,5]a=[1,2,5],有一个&和一个|,那么如果是1&2|5,结果是55,如果是1|2 &5,结果是00

小明希望得到最大的结果,在这个基础上,希望整个表达式的字典序尽量小(此处|的字典序小于&),请帮助小明计算最小的字典序。

输入格式

第一行输入n,kn,k

接下来一行输入nn个正整数表示aia_i

输出格式

第一行输出最大的结果。

第二行输出一个字符串表示字典序最小的符号序列。

样例输入 #1

4 2
1 3 5 7

样例输出 #1

7
||&

样例解释 #1

三种不同的符号序列产生的结果:

||&=7,|&|=7,&||=7

都是77||&字典序最小。

样例输入 #2

4 1
1 3 5 7

样例输出 #2

7
&&|

样例解释 #3

三种不同的符号序列产生的结果:

&&|=7,&|&=5,|&&=1

数据范围

对于30%的数据:n20n\leq 20

对于另30%的数据:n1000,0ai<128n\leq 1000,0\leq a_i<128

对于另10%的数据:k=1k=1

对于100%的数据:n2×105,0ai<260n\leq 2\times 10^5,0\leq a_i<2^{60}