/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
int N;
List<List<Integer>> adj;
Scanner input
= new Scanner
(System.
in); N = input.nextInt();
adj = new ArrayList<>();
adj.add(new ArrayList<>());
// adj.add(Arrays.asList(3, 4));
// adj.add(Arrays.asList(4, 1));
System.
out.
println(isCyclic
(N,adj
));
}
public static boolean dfs(int i, int []vis,int [] path,List<List<Integer>> adj){
vis[i]=1;
path[i]=1;
for(int it : adj.get(i)){
if(vis[it]==0){
if(dfs(it,vis,path,adj)){
return true;
}
}
else if(path[it]==1){
return true;
}
}
path[i]=0;
return false;
}
public static boolean isCyclic(int N, List<List<Integer>> adj) {
int [] vis = new int [N];
int [] path = new int [N];
//path.resize(N+1);
for(int i=0;i<N;i++){
if(dfs(i,vis,path,adj)){
return true;
}
}
return false;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnQgTjsKCQlMaXN0PExpc3Q8SW50ZWdlcj4+IGFkajsKCQlTY2FubmVyIGlucHV0ID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlOID0gaW5wdXQubmV4dEludCgpOwoJCWFkaiA9IG5ldyBBcnJheUxpc3Q8PigpOwphZGouYWRkKEFycmF5cy5hc0xpc3QoMSkpOwphZGouYWRkKEFycmF5cy5hc0xpc3QoMiw1KSk7CmFkai5hZGQoQXJyYXlzLmFzTGlzdCgzKSk7CmFkai5hZGQoQXJyYXlzLmFzTGlzdCg0KSk7CmFkai5hZGQoQXJyYXlzLmFzTGlzdCgxKSk7CmFkai5hZGQobmV3IEFycmF5TGlzdDw+KCkpOwoKLy8gYWRqLmFkZChBcnJheXMuYXNMaXN0KDMsIDQpKTsKLy8gYWRqLmFkZChBcnJheXMuYXNMaXN0KDQsIDEpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oaXNDeWNsaWMoTixhZGopKTsKCQkKfQpwdWJsaWMgc3RhdGljIGJvb2xlYW4gZGZzKGludCBpLCBpbnQgW112aXMsaW50IFtdIHBhdGgsTGlzdDxMaXN0PEludGVnZXI+PiBhZGopewogICAgICAgIHZpc1tpXT0xOwogICAgICAgIHBhdGhbaV09MTsKICAgICAgICBmb3IoaW50IGl0IDogYWRqLmdldChpKSl7CiAgICAgICAgICAgIGlmKHZpc1tpdF09PTApewogICAgICAgICAgICAgICAgaWYoZGZzKGl0LHZpcyxwYXRoLGFkaikpewogICAgICAgICAgICAgICAgCXJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYocGF0aFtpdF09PTEpewogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcGF0aFtpXT0wOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0N5Y2xpYyhpbnQgTiwgTGlzdDxMaXN0PEludGVnZXI+PiBhZGopIHsKICAgICAgICBpbnQgW10gdmlzID0gbmV3IGludCBbTl07CiAgICAgICAgaW50IFtdIHBhdGggPSBuZXcgaW50IFtOXTsKICAgICAgICAvL3BhdGgucmVzaXplKE4rMSk7CiAgICAgIGZvcihpbnQgaT0wO2k8TjtpKyspewogICAgICAgICAgIGlmKGRmcyhpLHZpcyxwYXRoLGFkaikpewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoJCQoJfQoK