#LX0021. 与或

与或

题目描述

小明,没错又是小明。

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

小明需要把这nn个数用上述n−1n-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%的数据:n≤20n\leq 20。

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

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

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