import typing
import math


def triangle_ASA(alpha: float, c: float, beta: float) -> typing.Tuple[float, float, float]:
    """Given angle at A, included side A-B, angle at B of a plane triangle
    this returns side A-C, angle at C, side C-B. Angles in radians.
    See: https://en.wikipedia.org/wiki/Solution_of_triangles#A_side_and_two_adjacent_angles_given_(ASA)
    """
    if alpha <= 0.0:
        raise ValueError('Angle alpha must be > 0.0 not {}'.format(alpha))
    if c <= 0.0:
        raise ValueError('Side c must be > 0.0 not {}'.format(c))
    if beta <= 0.0:
        raise ValueError('Angle beta must be > 0.0 not {}'.format(beta))
    gamma = math.pi - alpha - beta
    factor = c / math.sin(gamma)
    a = factor * math.sin(alpha)
    b = factor * math.sin(beta)
    return b, gamma, a