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.
# aadiupadhyay
import os.path
from math import gcd, floor, ceil
from collections import *
import sys
mod = 1000000007
INF = float('inf')
def st(): return list(sys.stdin.readline().strip())
def li(): return list(map(int, sys.stdin.readline().split()))
def mp(): return map(int, sys.stdin.readline().split())
def inp(): return int(sys.stdin.readline())
def pr(n): return sys.stdout.write(str(n)+"\n")
def prl(n): return sys.stdout.write(str(n)+" ")


if os.path.exists('input.txt'):
    sys.stdin = open('input.txt', 'r')
    sys.stdout = open('output.txt', 'w')


def solve1(r, s, p):

    if (r, s, p) in dp1:
        return dp1[(r, s, p)]

    if r == 0:
        dp1[(r, s, p)] = 0
        return 0

    if r > 0 and s == 0 and p == 0:
        dp1[(r, s, p)] = 1
        return 1

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

    return dp1[(r, s, p)]


def solve2(r, s, p):

    if (r, s, p) in dp2:
        return dp2[(r, s, p)]

    if s == 0:
        dp2[(r, s, p)] = 0
        return 0

    if s > 0 and r == 0 and p == 0:
        dp2[(r, s, p)] = 1
        return 1

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

    return dp2[(r, s, p)]


def solve3(r, s, p):

    if (r, s, p) in dp3:
        return dp3[(r, s, p)]

    if p == 0:
        dp3[(r, s, p)] = 0
        return 0

    if p > 0 and s == 0 and r == 0:
        dp3[(r, s, p)] = 1
        return 1

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

    return dp3[(r, s, p)]


dp1 = defaultdict(float)
dp2 = defaultdict(float)
dp3 = defaultdict(float)
r, s, p = mp()
ans1 = solve1(r, s, p)
ans2 = solve2(r, s, p)
ans3 = solve3(r, s, p)
print(ans1, ans2, ans3)
