1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <iostream>

void funkcja(long long x){
    if(x<3)
        if(x==0){
            std::cout<<' '<<'0'<<' '<<'0';
            return;
        } else if(x==1){
            std::cout<<' '<<'1'<<' '<<'0';
            return;
        } else{
            std::cout<<' '<<'0'<<' '<<'1';
            return;
        }
    int a_1=1, a=2, b=2, b_1=1;
    for(int i=0;;i++){
        if(a>x/2){
            if(a+a_1==x){
                for(int j=0;j<i+2;j++){
                    std::cout<<' '<<'0';
                }
                std::cout<<' '<<'1';
                break;
            }
            funkcja(x-a);
            for(int j=0;j<i;j++){
                    if(b>x-a)
                        std::cout<<' '<<'0';
                    b+=b_1;
                    b_1=b-b_1;
                }
            std::cout<<' '<<'1';
            break;
        }
        a+=a_1;
        a_1=a-a_1;
    }
}

int main()
{
    short t;
    std::cin>>t;
    int n;
    long long a, a_1;
    int cyfra;
    long long x[t], y[t];
    for(short li=0;li<t;li++)
    {
        std::cin>>n;
        a_1=1; a=1; x[li]=0; y[li]=0;
        for(int i=1;i<=2&&i<=n;i++){
            std::cin>>cyfra;
            if(cyfra==1)
                x[li]+=a;
            a+=a_1;
            a_1=a-a_1;
        }
        for(int i=3;i<=n;i++){
            std::cin>>cyfra;
            if(cyfra==1)
                x[li]+=a;
            a+=a_1;
            a_1=a-a_1;
        }
        std::cin>>n;
        a_1=1; a=1;
        for(int i=1;i<=2&&i<=n;i++){
            std::cin>>cyfra;
            if(cyfra==1)
                y[li]+=a;
            a+=a_1;
            a_1=a-a_1;
        }
        for(int i=3;i<=n;i++){
            std::cin>>cyfra;
            if(cyfra==1)
                y[li]+=a;
            a+=a_1;
            a_1=a-a_1;
        }
        x[li]*=y[li];
    }

    for(short li=0;li<t;li++)
    {
            if(x[li]<3)
                if(x[li]==0){
                    std::cout<<'1'<<' '<<'0';
                } else if(x[li]==1){
                    std::cout<<'1'<<' '<<'1';
                }  else{
                    std::cout<<'2'<<' '<<'0'<<' '<<'1';
                }
            else{
            int b=2, b_1=1;
            a=2; a_1=1;
            for(int i=0;;i++){
                if(a>x[li]/2){
                    if(a+a_1==x[li]){
                        std::cout<<i+3;
                        for(int j=0;j<i+2;j++){
                            std::cout<<' '<<'0';
                        }
                        std::cout<<' '<<'1';
                        break;
                    }
                    std::cout<<i+2;
                    funkcja(x[li]-a);
                    for(int j=0;j<i;j++){
                            if(b>x[li]-a)
                                std::cout<<' '<<'0';
                            b+=b_1;
                            b_1=b-b_1;
                        }
                    std::cout<<' '<<'1';
                    break;
                }
                a+=a_1;
                a_1=a-a_1;
            }
            }
        std::cout<<std::endl;
    }
    return 0;
}