def split_seconds(seconds: int) -> dict:
    """This function converts seconds into a dictionary by splitting seconds without year, month, day, hour, minute
    and second when possible.

    :param seconds: seconds that will be converted

    Example:
        >>> from phanterpwa.tools import split_seconds
        >>> split_seconds(123456789)
        {'year': 3, 'month': 11, 'day': 3, 'hour': 21, 'minute': 33, 'second': 9}
        >>> split_seconds(121)
        {'minute': 2, 'second': 1}
        >>> split_seconds(3659)
        {'hour': 1, 'second': 59}
    """

    if not isinstance(seconds, int):
        raise ValueError("The seconds must be an integer. Given: {0}".format(seconds))

    def s(seconds, d={}):
        d = dict(**d)
        if seconds >= 31536000:
            if seconds % 31536000:
                r = seconds % 31536000
                d['year'] = seconds // 31536000
                return s(r, d)
            else:
                d['year'] = seconds // 31536000
                return d
        else:
            if seconds >= 2592000:
                if seconds % 2592000:
                    r = seconds % 2592000
                    d['month'] = seconds // 2592000
                    return s(r, d)
                else:
                    d['month'] = seconds // 2592000
                    return d
            else:
                if seconds >= 86400:
                    if seconds % 86400:
                        r = seconds % 86400
                        d['day'] = seconds // 86400
                        return s(r, d)
                    else:
                        d['day'] = seconds // 86400
                        return d
                else:
                    if seconds >= 3600:
                        if seconds % 3600:
                            r = seconds % 3600
                            d['hour'] = seconds // 3600
                            return s(r, d)
                        else:
                            d['hour'] = seconds // 3600
                            return d
                    else:
                        if seconds >= 60:
                            if seconds % 60:
                                r = seconds % 60
                                d['minute'] = seconds // 60
                                return s(r, d)
                            else:
                                d['minute'] = seconds // 60
                                return d
                        else:
                            d['second'] = seconds
                            return d
    return s(seconds)