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