Bessie והפרות בחוות הסמוכות החליטו לחבר את החוות בשבילים כדי להתאחד נגד החקלאים. כל אחת מ־$N$ החוות ($1 \le N \le 100,000$) התבקשה לבנות שביל בדיוק לחווה אחת אחרת, בסך הכול $N$ שבילים. אחרי חודשים נבנו רק $M$ ($1 \le M < N$).
ויכוחים מי כבר בנתה שביל מאיימים לפלג את הברית. Bessie רוצה לספור איך נבנו $M$ השבילים הקיימים ולהרגיע את המתח. שביל בין 3 ו־4 יכול להיבנות בידי חווה 3 או 4. ספרו שיוכים של שבילים לחוות שבנו אותם מודולו 1,000,000,007. שני שיוכים שונים אם לפחות שביל אחד נבנה בידי חווה אחרת.
קלט
- שורה 1: השלמים $N$ ו־$M$ המופרדים ברווח.
- שורות $2..1+M$: שורה $i+1$ מתארת את שביל $i$ עם $u_{i}$ ו־$v_{i}$ המופרדים ברווח ($1 \le u_{i}, v_{i} \le N, u_{i} \ne v_{i}$), החוות המחוברות.
פלט
- שורה 1: מספר השיוכים מודולו 1,000,000,007. אם שום שיוך אינו עומד בתנאים, הדפיסו 0.
דוגמאות
קלט 1
5 4 1 2 3 2 4 5 4 5
פלט 1
6
הסבר
ייתכנו שני שבילים בין אותו זוג חוות.
יש 6 שיוכים. $\{a,b,c,d\}$ פירושו שחווה 1 בונה שביל a, חווה 2 שביל b, חווה 3 שביל c וחווה 4 שביל d. השיוכים הם: $\{2, 3, 4, 5\}$ $\{2, 3, 5, 4\}$ $\{1, 3, 4, 5\}$ $\{1, 3, 5, 4\}$ $\{1, 2, 4, 5\}$ $\{1, 2, 5, 4\}$
מחבר הבעיה: Mark Gordon, 2011