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