import math
def fenjie(n):
r = [1]
for i in range(2,int(n//2)+1):
if n%i == 0:
r.append(i)
return r
def beibao(pocket, total):
# 只有前n个,total 为是否可行
n = len(pocket)
if total == 0:
return True,[]
else:
if n == 0:
return False,[]
if n == 1:
if total == pocket[0]:
return True,[pocket[0]]
else:
return False,[]
if n > 1:
if sum(pocket) < total:
return False,[]
if total >= pocket[-1]:
m1 = beibao(pocket[0:-1], total)
m2 = beibao(pocket[0:-1], total-pocket[-1])
if m1[0]:
return True,m1[1]
elif m2[0]:
return True,m2[1] + [pocket[-1]]
else:
return False,[]
else:
m1 = beibao(pocket[0:-1], total)
if m1[0]:
return True,m1[1]
else:
return False,[]
def main(zi,mu,i):
total = zi*i
pocket = fenjie(mu*i)
return beibao(pocket, int(total))
while True:
try:
s = list(map(int,input().strip().split('/')))
zi,mu = s[0],s[1]
g = math.gcd(zi,mu)
if g == zi:
print(str(1)+'/'+str(mu//zi))
else:
zi /= g
mu /= g
zi,mu = int(zi),int(mu)
i = 2
while True:
flag,result = main(zi,mu,i)
if not flag:
i += 1
else:
result.sort(reverse=True)
break
for k in range(len(result)):
tmp = mu*i // result[k]
result[k] = '1'+'/'+str(tmp)
print('+'.join(result))
except:
break