The Hamming distance between two strings of bits (binary integers) is the number of corresponding bit positions that differ. This can be found by using XOR on corresponding bits or equivalently, by adding corresponding bits (base 2) without a carry. For example, in the two bit strings that follow: A 0 1 0 0 1 0 1 0 0 0 B 1 1 0 1 0 1 0 1 0 0 A XOR B = 1 0 0 1 1 1 1 1 0 0 The Hamming distance (H) between these 10-bit strings is 6, the number of 1's in the XOR string. Input There will be a sequence of instances. For each instance, you will be given a Hamming distance H and a bit string x. The end of the input will be indicated by a line with H=0. Output For each instance, output a list of all possible bit strings of length N that are Hamming distance H from x, printed in lexicographic order. Note: If the length of x is N, the number of such bit strings is N!/(H!(N-H)!). The program should work for 1 <= H <= N <= 20. There should be a blank line between outputs for different instances. Sample Input 2 0000 1 000 0 Sample Output 0011 0101 0110 1001 1010 1100 001 010 100