زیردرخت(subtree)
مهدی به پدرام یک گراف ساده و همبند $n$ راسی و $m$ یالی کادو داده است.البته این گراف یک گراف عادی نیست. هر راس در حداکثر یک دور ظاهر میشود. پدرام برای قدردانی از هدیهی مهدی، تصمیم گرفتهاست که تعداد زیردرختهای القایی گرافی که مهدی به او دادهاست را حساب کند. حالا شما به پدرام کمک کنید و جواب را برای او به دست آورید.
پدرام برای کمک به شما، توضیحی در مورد زیر گراف القایی به شما داده است:
زیرگراف القایی یک گراف، مجموعهای از راسهای آن گراف و همهی یالهایی است که دو سرشان از میان راسهای انتخاب شده باشد.
زیردرخت القایی ، یک زیرگراف القایی است، که راسها و یالهایش تشکیل یک درخت بدهد.
ورودی
در سطر اول ورودی عدد $n$ و $m$ آمده است .
در هر یک از $m$ خط بعدی دو عدد که نمایانگر دو سر یک یالاند، آمده است.
خروجی
در تنها سطر خروجی، باقی ماندهی عددی که پدرام میخواهد را به $10^9+7$ چاپ کنید.
زیرمسئلهها
- زیرمسئله اول (۸ نمره): $n \le 20$
- زیرمسئله دوم (۱۲ نمره):$m = n - 1$ یا به عبارتی گراف ورودی درخت است.
- زیرمسئله سوم (۳۰ نمره):$n \le 5000$
- زیرمسئله چهارم (۵۰ نمره): بدون محدودیت اضافی
محدودیتها
- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
- $1 \le n \le 10^5$
ورودی و خروجی نمونه
| ورودی نمونه | خروجی نمونه |
|---|---|
| 5 5 1 2 2 3 3 4 4 1 4 5 | 19 |
| 5 4 1 2 1 3 2 4 2 5 | 17 |
| 8 9 1 2 2 3 3 1 3 4 4 5 5 6 6 7 7 4 7 8 | 52 |