//Rohit Singh
//3/12/20
//Int5
//Enloe
//Potter
//Contest 3
#include 
#include 
#include 
#include 
#include 

using namespace std;

ifstream myfile("input.txt");

int main()
{
    for(int run = 0;run<5;run++)
    {
    string line;
    vector  node;
    myfile>>line;
    bool x = true;
    int position;
    while(x==true)
    {
        if(line.find("+")>=0&&line.find("+")=0&&node[k].find("~A")<20)
        {
            for(int i = 0; i<4; i++)
            {
                b[i][2]=1;
                b[i][3]=1;
            }
            if(node[k].find("~B")>=0&&node[k].find("~B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[0][i]=0;
                    b[1][i]=0;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else if(node[k].find("B")>=0&&node[k].find("B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[2][i]=0;
                    b[3][i]=0;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else
            {
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
        }
        else if(node[k].find("A")>=0&&node[k].find("A")<20)
        {
            for(int i = 0; i<4; i++)
            {
                b[i][0]=1;
                b[i][1]=1;
            }
            if(node[k].find("~B")>=0&&node[k].find("~B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[0][i]=0;
                    b[1][i]=0;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else if(node[k].find("B")>=0&&node[k].find("B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[2][i]=0;
                    b[3][i]=0;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else
            {
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
        }
        else
        {
            if(node[k].find("~B")>=0&&node[k].find("~B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[2][i]=1;
                    b[3][i]=1;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else if(node[k].find("B")>=0&&node[k].find("B")<20)
            {
                for(int i = 0; i<4; i++)
                {
                    b[0][i]=1;
                    b[1][i]=1;
                }
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=0;
                        b[i][2]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=0;
                        b[i][3]=0;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
            }
            else
            {
                if(node[k].find("~C")>=0&&node[k].find("~C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][0]=1;
                        b[i][3]=1;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else if (node[k].find("C")>=0&&node[k].find("C")<20)
                {
                    for(int i = 0; i<4; i++)
                    {
                        b[i][1]=1;
                        b[i][2]=1;
                    }
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=0;
                            b[2][i]=0;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=0;
                            b[3][i]=0;
                        }
                    }
                }
                else
                {
                    if(node[k].find("~D")>=0&&node[k].find("~D")<20&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[0][i]=1;
                            b[3][i]=1;
                        }
                    }
                    else if(node[k].find("D")>=0&&node[k].find("D")<20&&node[k].find("D")<20)
                    {
                        for(int i = 0; i<4; i++)
                        {
                            b[1][i]=1;
                            b[2][i]=1;
                        }
                    }
                }
            }
        }
        /*for(int i = 0; i<4; i++)
        {
            for(int j = 0; j<4; j++)
            {
                cout<