Ториангуляции

Для положительных вещественных чисел a,b ,тор a×b это прямоугольник шириной a и высотой b, чьи левая и правая сторона идентичны, равно как и верхняя и нижняя сторона. Другими словами, при прочерчивании пути на прямоугольнике, достигнув края прямоугольника путь "оборачивается вокруг" и продолжается из соответствующей точки на противоположной стороне.

Выкладывание плиткой тора - это способ разбить его на равносторонние треугольники с длиной стороны 1. Например, следующие три изображения показывают соответственно тор 1×32 с двумя треугольниками, тор 3×1 с четырьмя треугольниками и тор примерно 2.8432×2.1322 с 14 треугольниками:

Для тора a×b два выкладывания плиткой называются эквивалентными, если возможно получить одно выкладывание из другого путем непрерывного перемещения всех треугольников так, чтобы ни в какой момент перемещения между ними не образовывалось пустот и никакие треугольники не перекрывались. Например, анимация ниже демонстрирует эквивалентность двух выкладываний:

Пусть F(n) будет общим количеством неэквивалентных выкладываний плиткой для всех возможных торов с ровно n треугольниками. Например, F(6)=8 с показанными ниже восемью неэквивалентными выкладываниями для торов с шестью треугольниками:

Пусть G(N)=n=1NF(N) . Известно, что G(6)=14 , G(100)=8090 и G(105)645124048 (mod 1 000 000 007)

Найдите G(109) . В качестве ответа приведите остаток от деления полученного результата на 1000000007 .

Решение