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

Source: aizu | Difficulty: UNKNOWN_DIFFICULTY


Solutions:
(n, m) = map(int, input().split())
print('{:032b}'.format(n & m))
print('{:032b}'.format(n | m))
print('{:032b}'.format(n ^ m))


(a, b) = map(int, input().split())
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{0:032b}'.format(a ^ b))


def main():
	bm = 4294967295
	(a, b) = map(int, input().split())
	an = a & b & bm
	o = (a | b) & bm
	xo = (a ^ b) & bm
	print(format(an, '032b'))
	print(format(o, '032b'))
	print(format(xo, '032b'))
main()


(a, b) = map(int, input().split())
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{:032b}'.format(a ^ b))


(a, b) = map(int, input().split())
MASK = (1 << 32) - 1
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{:032b}'.format(a ^ b))


(a, b) = map(int, input().split())
print(f'{a & b:032b}')
print(f'{a | b:032b}')
print(f'{a ^ b:032b}')


(a, b) = map(int, input().split())
print(bin(a & b)[2:].zfill(32))
print(bin(a | b)[2:].zfill(32))
print(bin(a ^ b)[2:].zfill(32))


(a, b) = (int(x) for x in input().split())
print('{0:032b}'.format(a & b))
print('{0:032b}'.format(a | b))
print('{0:032b}'.format(a ^ b))


(a, b) = map(lambda x: int(x), input().split())
mask = (1 << 32) - 1
print(f'{a & b & mask:032b}')
print(f'{(a | b) & mask:032b}')
print(f'{(a ^ b) & mask:032b}')


(a, b) = [int(x) for x in input().split()]
print(format(a & b, '032b'))
print(format(a | b, '032b'))
print(format(a ^ b, '032b'))


(a, b) = map(int, input().split())
c = a & b & 4294967295
d = (a | b) & 4294967295
e = (a ^ b) & 4294967295
print(format(c, '032b'))
print(format(d, '032b'))
print(format(e, '032b'))


(a, b) = (int(x) for x in input().split())
MAX = (1 << 32) - 1
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{:032b}'.format(a ^ b))


(a, b) = map(int, input().split())
print(format(a & b, '032b'))
print(format(a | b, '032b'))
print(format(a ^ b, '032b'))


(a, b) = map(int, input().split())
print(f'{a & b:032b}\n{a | b:032b}\n{a ^ b:032b}')


def out(n):
	mask = 2 ** 32 - 1
	print(format(n & mask, '032b'))
(a, b) = map(int, input().split())
out(a & b)
out(a | b)
out(a ^ b)


(x, y) = map(int, input().split())
bin_x = format(x & y, '032b')
bin_x1 = format(x | y, '032b')
bin_x2 = format(x ^ y, '032b')
print(bin_x)
print(bin_x1)
print(bin_x2)


def run():
	(a, b) = [int(i) for i in input().split()]
	fmt = '{:032b}'
	mask = ~(1 << 32)
	print(fmt.format(a & b & mask))
	print(fmt.format((a | b) & mask))
	print(fmt.format((a ^ b) & mask))
run()


(a, b) = map(int, input().split())
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{:032b}'.format(a ^ b))


(a, b) = map(int, input().split())
print('{:032b}'.format(a & b))
print('{:032b}'.format(a | b))
print('{:032b}'.format(a ^ b))