from typing import Tuple


def distance(point_a: Tuple[int, int],
             point_b: Tuple[int, int],
             m: int) -> float:
    """Generalized distance between two points
    Note:
        See more info here: https://xlinux.nist.gov/dads/HTML/lmdistance.html
    Args:
        - point_a (Tuple[int, int]): a coordinate pair
        - point_b (Tuple[int, int]): a coordinate pair
        - m (int): the type of distance to calculate between the points
                        Can only take three values:
                        1 -> manhattan
                        2 -> euclidean
                        More than 2 -> minkowski
    Result:
        float: the distance between the two points
    """
    abs_diff_x_exp_m = abs(point_a[0] - point_b[0]) ** m
    abs_diff_y_exp_m = abs(point_a[1] - point_b[1]) ** m
    sum_dif = abs_diff_x_exp_m + abs_diff_y_exp_m
    distance = sum_dif ** (1 / m)
    return distance