کیان و دوستان برای تعطیلات به شمال رفتهاند. در راه برای کباب درست کردن کنار برکهای توقف میکنند. در آنجا تعداد زیادی نیلوفر آبی میبینند و تعدادی قورباغه که بر روی آنها میپرند. ترتیب منظم نیلوفرهای آبی نظر کیان را جلب کرد. زیبایی برکه در آن بود که $n$ نیلوفر آبی در یک ردیف و با فاصلهی ۱ متر از یکدیگر قرار گرفته بودند. کیان با کمی دقت بیشتر متوجه شد که اگر قورباغهای از نیلوفر آبی $a$ به نیلوفر آبی $b$ بپرد، نیلوفر آبی $a$ به زیر آب میرود و قورباغهی دیگری نمیتواند روی آن بپرد.
کمیته ملی برای مراسم افتتاحیه المپیاد جهانی ۲۰۱۷، از کیان و ملک درخواست ایدهای جدید کرده است. برای همین آنها تصمیم میگیرند برکهای مصنوعی با $n$ نیلوفر آبی با فاصلهی $1$ متر آماده کنند. نیلوفرها را از چپ به راست با $1$ تا $n$ شمارهگذاری شدهاند. آنها قصد دارند که $k$ قورباغه را به گونهای تربیت کنند که به صورت زیر رقصقورباغهای انجام دهند:
توجه کنید که:
ملک که به دنبال سؤال برای امتحانها است با دیدن این برنامه ناگهان سؤالی طرح میکند. سؤال به این صورت است که با شرایط بالا رقص قورباغهای به چند روش متفاوت ممکن است اجرا شود. از آنجا که ملک سخت درگیر آماده سازی آزمونها هست از شما خواسته است برنامهای بنویسید که تعداد روشهای رقصقورباغهای را بشمارد. از آنجا که ممکن است جواب بزرگ باشد، حاصل آن را به پیمانهی $10^9 + 7$ حساب کنید.
دو روش متفاوت است اگر و تنها اگر قور باغهای وجود داشته باشد که بر روی دنبالهی متفاوتی از نیلوفرهای آبی قرار گرفتهباشد.
در تنها خط ورودی، به ترتیب سه عدد طبیعی $n$، تعداد نیلوفرهای آبی، $k$، تعداد قورباغهها و $p$، حداکثر پرش یک قورباغه، آمده است.
در تنها خط خروجی، تعداد روشها را به پیمانهی $10 ^ 9 + 7$ چاپ کنید.
ورودی نمونه | خروجی نمونه |
---|---|
3 2 2 | 1 |
4 2 3 | 2 |
14 3 6 | 14020 |
در ورودی نمونهی اول، برای پرش اول تنها دو حالت زیر را داریم:
بنابراین تعداد روشهای رقص قورباغهای برابر یک است.