import sys input = sys.stdin.readline from random import randint R=[randint(1,10**10) for i in range(151)] R2=[randint(1,10**10) for i in range(151)] R3=[randint(1,10**10) for i in range(151)] ANS=[] X=list(input().strip()) X=[ord(x)-96 for x in X] Y=list(input().strip()) Y=[ord(x)-96 for x in Y] Z=list(input().strip()) Z=[ord(x)-96 for x in Z] def calc1(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 return ANS*ANS2*ANS3 def calc2(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 return ANS*ANS2*ANS3 def calc3(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 return ANS*ANS2*ANS3 def calc4(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 return ANS*ANS2*ANS3 def calc5(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 return ANS*ANS2*ANS3 def calc6(i,j,k): now=1 ANS=0 ANS2=0 ANS3=0 now=0 for a in range(k): ANS^=Z[a]*R[now] ANS2^=Z[a]*R2[now] ANS3^=Z[a]*R3[now] now+=1 for a in range(j): ANS^=Y[a]*R[now] ANS2^=Y[a]*R2[now] ANS3^=Y[a]*R3[now] now+=1 for a in range(i): ANS^=X[a]*R[now] ANS2^=X[a]*R2[now] ANS3^=X[a]*R3[now] now+=1 return ANS*ANS2*ANS3 for i in range(len(X)): for j in range(len(Y)): for k in range(len(Z)): ANS.append(calc1(i+1,j+1,k+1)) ANS.append(calc2(i+1,j+1,k+1)) ANS.append(calc3(i+1,j+1,k+1)) ANS.append(calc4(i+1,j+1,k+1)) ANS.append(calc5(i+1,j+1,k+1)) ANS.append(calc6(i+1,j+1,k+1)) #print(ANS) print(len(set(ANS)))