- #include <bits/stdc++.h> 
- using namespace std; 
-   
- vector<int> adj_list[100]; 
- int visited[100]; 
-   
- bool DFS(int currnode, int par) { 
-     visited[currnode] = 1; 
-   
-     for (int i = 0; i < adj_list[currnode].size(); i++) { 
-         int child = adj_list[currnode][i]; 
-         if (!visited[child]) { 
-             if (DFS(child, currnode)) { 
-                 return true;  // Cycle found in recursion 
-             } 
-         } else if (child != par) { 
-             return true;  // Found a back edge → cycle 
-         } 
-     } 
-   
-     return false;  // No cycle in this path 
- } 
-   
- int main() { 
-     int node, edge; 
-     cin >> node >> edge; 
-   
-     for (int i = 0; i < edge; i++) { 
-         int u, v; 
-         cin >> u >> v; 
-         adj_list[u].push_back(v); 
-         adj_list[v].push_back(u); 
-     } 
-   
-     bool foundCycle = false; 
-   
-     for (int i = 1; i <= node; i++) { 
-         if (!visited[i]) { 
-             if (DFS(i, -1)) { 
-                 foundCycle = true; 
-                 break; 
-             } 
-         } 
-     } 
-   
-     if (foundCycle) 
-         cout << "Cycle detected" << endl; 
-     else 
-         cout << "No cycle detected" << endl; 
-   
-     return 0; 
- } 
-   
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBhZGpfbGlzdFsxMDBdOwppbnQgdmlzaXRlZFsxMDBdOwoKYm9vbCBERlMoaW50IGN1cnJub2RlLCBpbnQgcGFyKSB7CiAgICB2aXNpdGVkW2N1cnJub2RlXSA9IDE7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhZGpfbGlzdFtjdXJybm9kZV0uc2l6ZSgpOyBpKyspIHsKICAgICAgICBpbnQgY2hpbGQgPSBhZGpfbGlzdFtjdXJybm9kZV1baV07CiAgICAgICAgaWYgKCF2aXNpdGVkW2NoaWxkXSkgewogICAgICAgICAgICBpZiAoREZTKGNoaWxkLCBjdXJybm9kZSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgLy8gQ3ljbGUgZm91bmQgaW4gcmVjdXJzaW9uCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGNoaWxkICE9IHBhcikgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsgIC8vIEZvdW5kIGEgYmFjayBlZGdlIOKGkiBjeWNsZQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7ICAvLyBObyBjeWNsZSBpbiB0aGlzIHBhdGgKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbm9kZSwgZWRnZTsKICAgIGNpbiA+PiBub2RlID4+IGVkZ2U7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlZGdlOyBpKyspIHsKICAgICAgICBpbnQgdSwgdjsKICAgICAgICBjaW4gPj4gdSA+PiB2OwogICAgICAgIGFkal9saXN0W3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpfbGlzdFt2XS5wdXNoX2JhY2sodSk7CiAgICB9CgogICAgYm9vbCBmb3VuZEN5Y2xlID0gZmFsc2U7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbm9kZTsgaSsrKSB7CiAgICAgICAgaWYgKCF2aXNpdGVkW2ldKSB7CiAgICAgICAgICAgIGlmIChERlMoaSwgLTEpKSB7CiAgICAgICAgICAgICAgICBmb3VuZEN5Y2xlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmIChmb3VuZEN5Y2xlKQogICAgICAgIGNvdXQgPDwgIkN5Y2xlIGRldGVjdGVkIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIk5vIGN5Y2xlIGRldGVjdGVkIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==