class Solution:
def fractionAddition(self, exp: str) -> str:
cnt=[]
i,n,m,s=0,len(exp),1,0
while i<n:
if exp[i]>='0' and exp[i]<='9':
c=0
while i<n and exp[i]>='0' and exp[i]<='9':
c=c*10+int(exp[i])
i+=1
cnt.append(c)
elif exp[i]=='-':
c=0
i+=1
while i<n and exp[i]>='0' and exp[i]<='9':
c=c*10+int(exp[i])
i+=1
cnt.append(-c)
else:
i+=1
vis=[0 for _ in range(0,11)]
for j in range(1,len(cnt),2):
vis[cnt[j]]=1
for j in range(1,11):
if vis[j]==1:
m*=j
for j in range(0,len(cnt),2):
s+=cnt[j]*m//cnt[j+1]
if s==0:
return "0/1"
g=gcd(s,m)
s,m=s//g,m//g
return str(s)+"/"+str(m)