def get_country_name_from_m49(cls, m49, use_live=True, exception=None):
        # type: (int, bool, Optional[ExceptionUpperBound]) -> Optional[str]
        """Get country name from M49 code

        Args:
            m49 (int): M49 numeric code for which to get country name
            use_live (bool): Try to get use latest data from web rather than file in package. Defaults to True.
            exception (Optional[ExceptionUpperBound]): An exception to raise if country not found. Defaults to None.

        Returns:
            Optional[str]: Country name
        """
        iso3 = cls.get_iso3_from_m49(m49, use_live=use_live, exception=exception)
        if iso3 is not None:
            return cls.get_country_name_from_iso3(iso3, exception=exception)
        return None