#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void revers(int *bin)
{
    int temp, i;
    for (i = 0; i < 12 / 2; i++)
    {
        temp = bin[i];
        bin[i] = bin[12 - i - 1];
        bin[12 - i - 1] = temp;
    }
}

int *binary_system(int number)
{
    //int bin[12];
    int *bin = (int*) malloc(12*sizeof(int));
    
    
    for (int i = 0; i < 12; i++)
    {
        bin[i] = 0;
    }
    int i = 0;
    while (number != 0)
    {
        if (number % 2 == 0)
        {
            bin[i] = 0;
            number /= 2;
        }
        else
        {
            bin[i] = 1;
            number /= 2;
        }
        i++;
    }
    revers(bin);
    return bin;
}

void printArr(int *arr){
	for(size_t i = 0; i < 12; i++)
		printf("%d ", arr[i]);
	printf("\n");
}

void calculate_the_maximum(int n, int k)
{
    int *nbin, *kbin;
    nbin = binary_system(n);
    kbin = binary_system(k);
    
    //вывод
    printArr(nbin);
    printArr(kbin);
    
    /* функция будет работать корректно,
     * если вы будете контролировать процесс выделения памяти 
     * и своевременно её освобождать */
    free(nbin);
    free(kbin);
    
}



int main()
{
    int n, k;
    scanf("%d %d", &n, &k);
    calculate_the_maximum(n, k);
    return 0;
}

