from fractions import gcd
Num, Den = map ( int , input ( ) .split ( '/' ) )
Num, Den = Num//gcd( Num, Den) , Den//( gcd( Num, Den) )
Balans, Digital = [ Num%Den] , ''
index = -1
Cnt = Den
while Cnt % 5 == 0 or Cnt % 2 == 0 :
if Cnt % 5 == 0 :
Cnt //= 5
if Cnt % 2 == 0 :
Cnt //= 2
if Num % Den == 0 :
print ( Num//Den)
else :
Whole = Num//Den
Num = Num % Den
while Num % Den != 0 :
Num *= 10
tmp, tmp2 = Num % Den, Num // Den
Digital += str ( tmp2)
if tmp in Balans:
break
Num = tmp
if Num % Den == 0 :
break
Balans.append ( tmp)
for i in range ( 1 , len ( Balans) ) :
if tmp == Balans[ i] :
index = i
break
if Cnt == 1 :
print ( str ( Whole) + '.' + Digital)
print ( 'Длина предпериода:' , len ( Digital) , 'Длина периода:' , 0 )
elif Den % 2 != 0 and Den % 5 != 0 :
print ( str ( Whole) + '.' + '(' + Digital + ')' )
print ( 'Длина предпериода:' , 0 , 'Длина периода:' , len ( Digital) )
else :
print ( str ( Whole) + '.' + Digital[ :index] + '(' + Digital[ index:] + ')' )
print ( 'Длина предпериода:' , len ( Digital[ :index] ) , 'Длина периода:' , len ( Digital[ index:] ) )
ZnJvbSBmcmFjdGlvbnMgaW1wb3J0IGdjZApOdW0sIERlbiA9IG1hcChpbnQsaW5wdXQoKS5zcGxpdCgnLycpKQpOdW0sIERlbiA9IE51bS8vZ2NkKE51bSxEZW4pLCBEZW4vLyhnY2QoTnVtLERlbikpCkJhbGFucywgRGlnaXRhbCA9IFtOdW0lRGVuXSwgJycKaW5kZXggPSAtMQpDbnQgPSBEZW4Kd2hpbGUgQ250ICUgNSA9PSAwIG9yIENudCAlIDIgPT0gMDoKICAgIGlmIENudCAlIDUgPT0gMDoKICAgICAgICBDbnQgLy89IDUKICAgIGlmIENudCAlIDIgPT0gMDoKICAgICAgICBDbnQgLy89IDIKaWYgTnVtICUgRGVuID09IDA6CiAgICBwcmludChOdW0vL0RlbikKZWxzZToKICAgIFdob2xlID0gTnVtLy9EZW4KICAgIE51bSA9IE51bSAlIERlbgogICAgd2hpbGUgTnVtICUgRGVuICE9IDA6CiAgICAgICAgTnVtICo9IDEwCiAgICAgICAgdG1wLCB0bXAyID0gTnVtICUgRGVuLCBOdW0gLy8gRGVuCiAgICAgICAgRGlnaXRhbCArPSBzdHIodG1wMikKICAgICAgICBpZiB0bXAgaW4gQmFsYW5zOgogICAgICAgICAgICBicmVhawogICAgICAgIE51bSA9IHRtcAogICAgICAgIGlmIE51bSAlIERlbiA9PSAwOgogICAgICAgICAgICBicmVhawogICAgICAgIEJhbGFucy5hcHBlbmQodG1wKQogICAgZm9yIGkgaW4gcmFuZ2UoMSxsZW4oQmFsYW5zKSk6CiAgICAgICAgaWYgdG1wID09IEJhbGFuc1tpXToKICAgICAgICAgICAgaW5kZXggPSBpCiAgICAgICAgICAgIGJyZWFrCiAgICBpZiBDbnQgPT0gMToKICAgICAgICBwcmludChzdHIoV2hvbGUpICsgJy4nICsgRGlnaXRhbCkKICAgICAgICBwcmludCgn0JTQu9C40L3QsCDQv9GA0LXQtNC/0LXRgNC40L7QtNCwOicsIGxlbihEaWdpdGFsKSwgJ9CU0LvQuNC90LAg0L/QtdGA0LjQvtC00LA6JywgMCkKICAgIGVsaWYgRGVuICUgMiAhPSAwIGFuZCBEZW4gJSA1ICE9IDA6CiAgICAgICAgcHJpbnQoc3RyKFdob2xlKSArICcuJyArICcoJyArIERpZ2l0YWwgKyAnKScpCiAgICAgICAgcHJpbnQoJ9CU0LvQuNC90LAg0L/RgNC10LTQv9C10YDQuNC+0LTQsDonLCAwLCAn0JTQu9C40L3QsCDQv9C10YDQuNC+0LTQsDonLCBsZW4oRGlnaXRhbCkpCiAgICBlbHNlOgogICAgICAgIHByaW50KHN0cihXaG9sZSkgKyAnLicgKyBEaWdpdGFsWzppbmRleF0gKyAnKCcgKyBEaWdpdGFsW2luZGV4Ol0gKyAnKScpCiAgICAgICAgcHJpbnQoJ9CU0LvQuNC90LAg0L/RgNC10LTQv9C10YDQuNC+0LTQsDonLCBsZW4oRGlnaXRhbFs6aW5kZXhdKSwgJ9CU0LvQuNC90LAg0L/QtdGA0LjQvtC00LA6JywgbGVuKERpZ2l0YWxbaW5kZXg6XSkp