The Bad Luck Island is inhabited by three kinds of species: *r* rocks, *s* scissors and *p* papers. At some moments of time two random individuals meet (all pairs of individuals can meet equiprobably), and if they belong to different species, then one individual kills the other one: a rock kills scissors, scissors kill paper, and paper kills a rock. Your task is to determine for each species what is the probability that this species will be the only one to inhabit this island after a long enough period of time.
The single line contains three integers *r*, *s* and *p* (1 ≤ *r*, *s*, *p* ≤ 100) — the original number of individuals in the species of rock, scissors and paper, respectively.
def var():
    return (map(int,input().split()))
def a():
    return list((map(int,input().split())))


import copy
from collections import defaultdict,deque

dp1=[[[-1]*(102) for _ in range(102)] for _ in range(102)]
dp2=[[[-1]*(102) for _ in range(102)] for _ in range(102)]
dp3=[[[-1]*(102) for _ in range(102)] for _ in range(102)]

r,s,p= var()

def solve1(r,s,p):
    if dp1[r][s][p]!=-1:
        return dp1[r][s][p]
    
    if r==0 :
        return 0
    if s==0 and p==0:
        return 1
    all=r*s+s*p+p*r
    dp1[r][s][p]=0
    if s>0:
        dp1[r][s][p]+=((r*s)/(all))*solve1(r,s-1,p)
    if p>0:
        dp1[r][s][p]+=((r*p)/(all))*solve1(r-1,s,p)
    if s>0 and p>0:
        dp1[r][s][p]+=((p*s)/(all))*solve1(r,s,p-1)

    return dp1[r][s][p]

def solve2(r,s,p):
    if dp2[r][s][p]!=-1:
        return dp2[r][s][p]
    
    if s==0 :
        return 0
    if r==0 and p==0:
        return 1
    all=r*s+s*p+p*r
    dp2[r][s][p]=0
    if r>0:
        dp2[r][s][p]+=((r*s)/(all))*solve2(r,s-1,p)
    if p>0 and r>0:
        dp2[r][s][p]+=((r*p)/(all))*solve2(r-1,s,p)
    if p>0 :
        dp2[r][s][p]+=((p*s)/(all))*solve2(r,s,p-1)

    return dp2[r][s][p]

def solve3(r,s,p):
    if dp3[r][s][p]!=-1:
        return dp3[r][s][p]
    
    if p==0 :
        return 0
    if s==0 and r==0:
        return 1
    all=r*s+s*p+p*r
    dp3[r][s][p]=0
    if s>0 and r>0:
        dp3[r][s][p]+=((r*s)/(all))*solve3(r,s-1,p)
    if r>0:
        dp3[r][s][p]+=((r*p)/(all))*solve3(r-1,s,p)
    if s>0:
        dp3[r][s][p]+=((p*s)/(all))*solve3(r,s,p-1)

    return dp3[r][s][p]

# print(str(solve1(r,s,p))+' '+str(round(solve2(r,s,p),10))+' '+str(float(solve3(r,s,p)))) 
print("{0:.10f}".format(solve1(r,s,p)),"{0:.10f}".format(solve2(r,s,p)),"{0:.10f}".format(solve3(r,s,p)))
# print("{0:.10f}".format(5),'{0:.1f}'.format(7))
