1537: 选修课程

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:51 Solved:33

Description

       新学期开始,学校给出了一张选修课程表,这个学期你必须选修 n门课程,在选修某些课程之前需要一些先修课程。 先修课程按有向图的路径表示,如下图示的选修课程表中路径(1 3),则表示要学习课程 C3 则必须先学习完先修课程 C1 。校务处的张老师时常会将课程的前后次序搞颠倒了,现在请你判断依张老师新出的这一学期选修课程表,你是否能完成所有的 n门课程的学习?如果可以,返回 true ;否则,返回 false 。(请用DFS和卡恩两种方法)


 



Input

输入第一行两个整数,n门课程及m个选择 。接下m行为 m个选择,数字间空格分隔。

Output

    输出能完成所有的 n门课程学习返回 true ;否则,返回 false 。 

Sample Input Copy

7 10
1 3
1 4
2 4
2 6
3 5
4 5
4 6
4 7
5 7
6 7

Sample Output Copy

true

HINT

2=<n<=200, 2=<m<=2000