Alien`s Counting
Нацукі та її друзі були викрадені в космос інопланетянином і подружилися з багатьма іншопланетянами. Під час космічної подорожі вона помітила, що руки інопланетян часто дуже відрізняються від людських. У певного виду інопланетян на руці є N пальців і M правил згинання. Кожне правило згинання описує, що палець A завжди згинається, коли згинається палець B. Однак це правило не завжди означає, що палець B згинається, коли згинається палець A.
Коли вона рахувала числа за допомогою пальців, її зацікавило, скільки чисел її інопланетні друзі можуть порахувати за допомогою пальців. Однак, оскільки деякі друзі мали занадто складні набори правил, вона не могла їх обчислити. Чи могли б ви написати програму для неї?
Вхідні дані
N M S 1 D_1 S 2 D_2 ... S M D_M
Перша строка містить два цілі числа N та M (1 ≤ N ≤ 1000; 0 ≤ M ≤ 1000) у цьому порядку. Наступні M рядків описують правила згинання. Кожен рядок містить два цілі числа S_i та D_i у цьому порядку, що означає, що палець D_i завжди згинається, коли згинається палець S_i. Будь-який палець з'являється не більше одного разу в S.
Вихідні дані
Обчисліть, скільки чисел її інопланетні друзі можуть порахувати за допомогою пальців. Виведіть відповідь за модулем 1000000007 в одному рядку.