#573. 派对灯 Party Lamps

派对灯 Party Lamps

题目描述

IOI98\red{IOI98}的节日宴会上,我们有N(10<=N<=100)\red{N(10<=N<=100)}盏彩色灯,他们分别从1\red{1}N\red{N}被标上号码。 这些灯都连接到四个按钮:

按钮1\red{1}:当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来是关着的灯被点亮。

按钮2\red{2}:当按下此按钮,将改变所有奇数号的灯。

按钮3\red{3}:当按下此按钮,将改变所有偶数号的灯。

按钮4\red{4}:当按下此按钮,将改变所有序号是3×K+1(K>=0)\red{3\times K+1(K>=0)}的灯。例如:1,4,7...\red{1,4,7...}

一个计数器C\red{C}记录按钮被按下的次数。当宴会开始,所有的灯都亮着,此时计数器C\red C0\red{0}

你将得到计数器C(0<=C<=10000)\red{C(0<=C<=10000)}上的数值和经过若干操作后某些灯的状态。写一个程序去找出所有灯最后可能的与所给出信息相符的状态,并且没有重复。

输入格式

不会有灯会在输入中出现两次。

第一行: N\red{N}

第二行: C\red{C}最后显示的数值。

第三行: 最后亮着的灯,用一个空格分开,以1\red{-1}为结束。

第四行: 最后关着的灯,用一个空格分开,以1\red{-1}为结束。

输出格式

每一行是所有灯可能的最后状态(没有重复)。每一行有N\red{N}个字符,第1\red{1}个字符表示1\red 1号灯,最后一个字符表示N\red{N}号灯。0\red{0}表示关闭,1\red 1表示亮着。这些行必须从小到大排列(看作是二进制数)。

如果没有可能的状态,则输出一行IMPOSSIBLE\red{'IMPOSSIBLE'}

样例

输入样例

10
1
-1
7 -1

输出样例

0000000000
0101010101
0110110110

提示

对于 100%\red{100\%} 的数据,10n1000c104\red{10≤n≤100,0≤c≤10^4}

【样例解释】

在这个样例中,有三种可能的状态:

  • 所有灯都关着
  • 1,4,7,10\red{1,4,7,10} 号灯关着,2,3,5,6,8,9\red{2,3,5,6,8,9} 亮着。
  • 1,3,5,7,9\red{1,3,5,7,9} 号灯关着,2,4,6,8,10\red{2,4,6,8,10} 亮着。