کاج (Kaj)
در شهر آبابوا به دنباله، امیرمحمد میگویند، همچنین به دنبالههایی که به ازای هر $i$ که $1 < i$ ، حداقل یکی از دو عدد $a_i$ و $a_i - 1$ سمت چپ مکان $i$ ظاهر نشده باشند، ایمانی میگویند. (منظور از سمت چپ، تمام خانههای قبل از خانه $i$ است، نه تنها خانهی قبلی)
مثلاً $<2, 2, 1>$ یک امیرمحمد ایمانی معتبر است و $<1, 2, 2>$ یک امیرمحمد ایمانی معتبر نیست.
اهالی شهر آبابوا به سوالی مهم برخوردهاند و از شما درخواست کمک دارند: چند امیرمحمد ایمانی به طول $n$ با اعداد $1$ تا $m$ داریم؟
ورودی
سطر اول ورودی شامل دو عدد $n$ و $m$ است که $n$ طول موردنظر برای امیرمحمد ایمانی است و امیرمحمد ایمانی فقط میتواند شامل اعداد $1$ تا $m$ باشد.
خروجی
در خروجی باید تنها یک عدد چاپ کنید که جواب سوال مردم آبابوا است. از آنجا که این عدد میتواند خیلی بزرگ باشد باقیماندهی آن بر $10^9 + 7$ را چاپ کنید.
محدودیتها
- $1 \le n, m \le 500$
زیرمسئلهها
- زیرمسئله اول (۴ نمره): $n, m \le 8$
- زیرمسئله دوم (۳۲ نمره): $n, m \le 200$
- زیرمسئله سوم (۶۴ نمره): بدون محدودیت اضافی
ورودی و خروجی نمونه
| ورودی نمونه | خروجی نمونه |
|---|---|
2 2 | 4 |
3 2 | 6 |
توضیح نمونه
در مثال اول، هر ۴ دنباله ممکن معتبر هستند.
در مثال دوم، تنها ۲ دنباله $<1, 2, 2>$ و $<2, 1, 2>$ از ۸ حالت ممکن نامعتبر هستند، در نتیجه جواب برابر با ۶ است.