异或
题号:NC233705
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为  的由非负整数构成的序列 ,从中选出一个长度为偶数/奇数的子序列,使得这个子序列异或和的值最大。

如果一个序列  能通过删除一些元素(可以不删也可以删完)得到序列 ,那么序列  就是序列  的子序列。

由于序列  中的数可能很大,所以在输入中以二进制的方式给出。

输入描述:

第一行输入一个整数 

第二行输入  行,第  行有一个仅由  组成的字符串表示  的二进制表示,保证没有前导零

输出描述:

输出两行。

第一行一个仅由  组成的字符串表示选出长度为偶数的子序列的最大的二进制表示。

第二行一个仅由  组成的字符串表示选出长度为奇数的子序列的最大的二进制表示。

你要保证输出的答案没有前导零。特别的,如果答案恰好为 ,那么仅输出一个  即可。

示例1

输入

复制
4
100
1
110
1010

输出

复制
1110
1111

说明

奇数时选择 ,偶数时选择 
示例2

输入

复制
1
10

输出

复制
0
10