Вероника любит играть в свои игрушки. Кубики – одни из её самых любимых игрушек.
Вероника складывает из разноцветных кубиков башенки, пирамидки и многие другие фигуры. Сегодня Вероника хочет построить башенку из $$$n$$$ кубиков в высоту. У Вероники есть кубики красного, зелёного и синего цвета в неограниченном количестве. Вероника хочет построить красивую разноцветную башенку, поэтому она хочет, чтобы в башне было не более $$$k_r$$$ подряд красных кубиков, $$$k_g$$$ подряд зелёных кубиков и $$$k_b$$$ подряд синих кубиков.
Помогите Веронике определить, сколько различных башенок высотой $$$n$$$ кубиков она сможет построить. Так как это число может оказаться очень большим, выведите ответ по модулю $$$10^9 + 7$$$.
В единственной строке содержатся четыре целых числа $$$n$$$, $$$k_r$$$, $$$k_g$$$, $$$k_b$$$ $$$(1\leq n,k_r,k_g,k_b\leq 10^6)$$$ — высота башни и ограничения по количеству подряд идущих красных, зелёных и синих кубиков соответственно.
В единственной строке выведите целое число – количество различных вариантов башенок, взятое по модулю $$$10^9 + 7$$$.
5 2 2 2
180
6 1 1 3
222
3 1 1 1
12
4 4 4 4
81