Given two non-negative decimal integers $a$ and $b$, calculate their AND (logical conjunction), OR (logical disjunction) and XOR (exclusive disjunction) and print them in binary representation of 32 bits.

Constraints

* $0 \leq a, b \leq 2^{32} - 1$

Input

The input is given in the following format.


$a \; b$


Output

Print results of AND, OR and XOR in a line respectively.

Example

Input

8 10


Output

00000000000000000000000000001000
00000000000000000000000000001010
00000000000000000000000000000010
import java.util.*;

class Main{
	static final int nbits = 32;
	static BitSet bs;
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		long a = sc.nextLong();
		long b = sc.nextLong();
		BitSet bsa = new BitSet(nbits);
		BitSet bsb = new BitSet(nbits);
		for(int i = 0; i < nbits; i++){
			if((a & (1 << i)) != 0) bsa.set(i);
		}
		for(int i = 0; i < nbits; i++){
			if((b & (1 << i)) != 0) bsb.set(i);
		}
		makeBitSet(bsa);
		bs.and(bsb);
		printBitSet(bs);
		System.out.print("\n");
		makeBitSet(bsa);
		bs.or(bsb);
		printBitSet(bs);
		System.out.print("\n");
		makeBitSet(bsa);
		bs.xor(bsb);
		printBitSet(bs);
		System.out.print("\n");
	}
	static void makeBitSet(BitSet b){
		bs = new BitSet(nbits);
		for(int i = 0; i < nbits; i++){
			if(b.get(i)) bs.set(i);
		}
	}
	static void printBitSet(BitSet b){
		for(int i = nbits - 1; i >= 0; i--){
			if(b.get(i)) System.out.print(1);
			else System.out.print(0);
		}
	}
}

