'''
Given that Fk is the first Fibonacci number for which the first nine digits AND the last nine digits are 1-9 pandigital, find k.
'''

import time, MathFunctions
all_digits=set(['1','2','3','4','5','6','7','8','9'])

def first9pandigital(number):
    global all_digits
    return len(all_digits.difference(set(str(number)[:9])))==0
def last9pandigital(number):
    global all_digits
    return len(all_digits.difference(set(str(number)[-9:])))==0

start_time = time.time()
i = 1
while True:
    print(i)
    current_fib = MathFunctions.fib(i)
    # print(i, len(str(current_fib)))
    if first9pandigital(current_fib) and last9pandigital(current_fib):
        break
    i+=1

print(i)
print("--- %s seconds ---" % (time.time() - start_time))