l=len
r=range
R=lambda a:r(l(a))
def A(a,b):
for x in b:z=l(a)-1;x[0]<<=z;x[1]<<=z
for x in a:
if x[2]:
for z in r(3):x[z]=b[0][z]
return a+b[1:]
def B(a,b):
c=[]
for i in a:
for j in b:
c+=[[0,0,i[2]or j[2]]]
for z in[0,1]:
for k in R(a):c[-1][z]|=(i[z]>>k)%2*j[z]<<k*l(b)
return c
def C(s,i):
S=[];T=[]
while i<l(s):
c=s[i]
if"("==c:a,i=C(s,i+1);T+=a,
if")"==c:break
if c in'01':X=[[4,4,0],[4,4,1],[4,4,0]];X[0][c>'0']=2;T+=X,
if"ε"==c:T+=[[2,2,1],[2,2,0]],
if"|"==c:
t=T[0]
for j in r(1,l(T)):t=A(t,T[j])
S+=t,;T=[]
if"*"==c:
a=T[-1];a[0][2]=1
for x in a:
if x[2]:x[0]|=a[0][0];x[1]|=a[0][1]
i+=1
t=T[0]
for j in r(1,l(T)):t=A(t,T[j])
S+=t,;t=S[0]
for j in r(1,l(S)):t=B(t,S[j])
return t,i
I=input().split(",")
a=C(I[0],0)[0]
b=C(I[1],0)[0]
Q=[(1,1)]
d=1
V=set(Q)
while Q:
p,q=Q.pop();d*=any([p>>i&(0<a[i][2])for i in R(a)])<=any([q>>i&(0<b[i][2])for i in R(b)])
for z in[0,1]:
u=(sum((p>>i&1)*a[i][z]for i in R(a)),sum((q>>i&1)*b[i][z]for i in R(b)))
if~-(u in V):V.add(u);Q.append(u)
print(d)
bD1sZW4Kcj1yYW5nZQpSPWxhbWJkYSBhOnIobChhKSkKZGVmIEEoYSxiKToKIGZvciB4IGluIGI6ej1sKGEpLTE7eFswXTw8PXo7eFsxXTw8PXoKIGZvciB4IGluIGE6CiAgaWYgeFsyXToKICAgZm9yIHogaW4gcigzKTp4W3pdPWJbMF1bel0KIHJldHVybiBhK2JbMTpdCmRlZiBCKGEsYik6CiBjPVtdCiBmb3IgaSBpbiBhOgogIGZvciBqIGluIGI6CiAgIGMrPVtbMCwwLGlbMl1vciBqWzJdXV0KICAgZm9yIHogaW5bMCwxXToKICAgIGZvciBrIGluIFIoYSk6Y1stMV1bel18PShpW3pdPj5rKSUyKmpbel08PGsqbChiKQogcmV0dXJuIGMKZGVmIEMocyxpKToKIFM9W107VD1bXQogd2hpbGUgaTxsKHMpOgogIGM9c1tpXQogIGlmIigiPT1jOmEsaT1DKHMsaSsxKTtUKz1hLAogIGlmIikiPT1jOmJyZWFrCiAgaWYgYyBpbicwMSc6WD1bWzQsNCwwXSxbNCw0LDFdLFs0LDQsMF1dO1hbMF1bYz4nMCddPTI7VCs9WCwKICBpZiLOtSI9PWM6VCs9W1syLDIsMV0sWzIsMiwwXV0sCiAgaWYifCI9PWM6CiAgIHQ9VFswXQogICBmb3IgaiBpbiByKDEsbChUKSk6dD1BKHQsVFtqXSkKICAgUys9dCw7VD1bXQogIGlmIioiPT1jOgogICBhPVRbLTFdO2FbMF1bMl09MQogICBmb3IgeCBpbiBhOgogICAgaWYgeFsyXTp4WzBdfD1hWzBdWzBdO3hbMV18PWFbMF1bMV0KICBpKz0xCiB0PVRbMF0KIGZvciBqIGluIHIoMSxsKFQpKTp0PUEodCxUW2pdKQogUys9dCw7dD1TWzBdCiBmb3IgaiBpbiByKDEsbChTKSk6dD1CKHQsU1tqXSkKIHJldHVybiB0LGkKST1pbnB1dCgpLnNwbGl0KCIsIikKYT1DKElbMF0sMClbMF0KYj1DKElbMV0sMClbMF0KUT1bKDEsMSldCmQ9MQpWPXNldChRKQp3aGlsZSBROgogcCxxPVEucG9wKCk7ZCo9YW55KFtwPj5pJigwPGFbaV1bMl0pZm9yIGkgaW4gUihhKV0pPD1hbnkoW3E+PmkmKDA8YltpXVsyXSlmb3IgaSBpbiBSKGIpXSkKIGZvciB6IGluWzAsMV06CiAgdT0oc3VtKChwPj5pJjEpKmFbaV1bel1mb3IgaSBpbiBSKGEpKSxzdW0oKHE+PmkmMSkqYltpXVt6XWZvciBpIGluIFIoYikpKQogIGlmfi0odSBpbiBWKTpWLmFkZCh1KTtRLmFwcGVuZCh1KQpwcmludChkKQ==