#!/usr/bin/env python3

import sys

import math



sys.setrecursionlimit(10 ** 8)

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines



a, b, x = list(map(int, readline().split()))

xda2 = x / (a * a)





def check1(rad):

    return a * math.tan(rad) <= (b - xda2) * 2





def check2(rad):

    return a * b * b >= x * math.tan(rad) * 2





def solve():

    check = check1 if 2 * x > a * a * b else check2

    ok, ng = 0.0, math.pi / 2.0

    eps = 1e-12

    while ng - ok > eps:

        m = (ng + ok) / 2.0

        if check(m):

            ok = m

        else:

            ng = m

    return ok





if __name__ == "__main__":

    print((solve() / math.pi * 180.0))

#!/usr/bin/env python3

import sys

import math



sys.setrecursionlimit(10 ** 8)

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines



a, b, x = list(map(int, readline().split()))





def solve():

    if 2 * x > a * a * b:

        return math.atan(2.0 * (b / a - x / (a * a * a)))

    else:

        return math.atan(0.5 * a * b * b / x)





if __name__ == "__main__":

    print((solve() / math.pi * 180.0))

#!/usr/bin/env python3
import sys
import math

sys.setrecursionlimit(10**8)
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
a, b, x = list(map(int, readline().split()))
xda2 = x / (a * a)


def check1(rad):
    return a * math.tan(rad) <= (b - xda2) * 2


def check2(rad):
    return a * b * b >= x * math.tan(rad) * 2


def solve():
    check = check1 if 2 * x > a * a * b else check2
    ok, ng = 0.0, math.pi / 2.0
    eps = 1e-12
    while ng - ok > eps:
        m = (ng + ok) / 2.0
        if check(m):
            ok = m
        else:
            ng = m
    return ok


if __name__ == "__main__":
    print((solve() / math.pi * 180.0))

#!/usr/bin/env python3
import sys
import math

sys.setrecursionlimit(10**8)
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
a, b, x = list(map(int, readline().split()))


def solve():
    if 2 * x > a * a * b:
        return math.atan(2.0 * (b / a - x / (a * a * a)))
    else:
        return math.atan(0.5 * a * b * b / x)


if __name__ == "__main__":
    print((solve() / math.pi * 180.0))

-xda2 = x / (a * a) - - -def check1(rad): -    return a * math.tan(rad) <= (b - xda2) * 2 - - -def check2(rad): -    return a * b * b >= x * math.tan(rad) * 2 -    check = check1 if 2 * x > a * a * b else check2 -    ok, ng = 0.0, math.pi / 2.0 -    eps = 1e-12 -    while ng - ok > eps: -        m = (ng + ok) / 2.0 -        if check(m): -            ok = m -        else: -            ng = m -    return ok +    if 2 * x > a * a * b: +        return math.atan(2.0 * (b / a - x / (a * a * a))) +    else: +        return math.atan(0.5 * a * b * b / x)