def check(mid,a,b,x,border)
  if mid <= border 
    area = a*b - a*(a*Math.tan(mid/180.0*Math::PI))/2.0
  else
    area = b*(b*Math.tan((90.0-mid)/180.0*Math::PI))/2.0
  end
  #p [mid,a,b,x,border,area,x/a]
  return x/a < area
end

def bsearch(a,b,x)
  ok,ng = 0.0, 90
  border = Math.atan2(a,b)/(Math::PI)*180.0
  #p border
  mid = 45.0
  1000.times do
    mid = (ok+ng)/2.0
    if check(mid,a,b,x,border)
      ok = mid
    else
      ng = mid
    end
  end
  return mid
end

a,b,x = gets.split.map(&:to_f)
p bsearch(a,b,x)