def main(digits):
    """
        Find the index of the first term in the Fibonacci sequence to contain the
    given number of digits.

    :param digits: Number of digits that the requested term should contains.
    :rtype: int
    """
    # The number of digits of the Fibonacci terms is increased according to the
    # following sequences, where the values in the list are the number of terms
    # with the specified number of digits (=index), starting from 1-digit -> 1th term.
    initial = [0, 6, 5, 5]
    # .................................after the first 4-digit term, the pattern
    # below is repeated continuously
    pattern = [4, 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5]
    length = 14  # ....................instead of: len(pattern)

    if digits < 5:
        return sum(initial[:digits]) + 1

    digits -= 4
    index = ((digits // length) * sum(pattern)) + sum(pattern[:(digits % length)])
    return index + 16