Problem: 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

Solution (in CPP):

Solution:
#include<bits/stdc++.h>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define HUGE_NUM 99999999999999999
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;



void outPut(int value){

	stack<int> S;

	for(int loop = 0; loop < 32; loop++){
		if(value & (1 << loop)){

			S.push(1);

		}else{

			S.push(0);
		}
	}

	while(!S.empty()){

		printf("%d",S.top());
		S.pop();
	}

	printf("\n");
}

int main(){

	int A,B;
	scanf("%d %d",&A,&B);

	outPut(A&B);
	outPut(A|B);
	outPut(A^B);

	return 0;
}