#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
int n,m;
vector<int> v[2001];
int visited[2001];
int flag = 0;
void dfs(int node, int level){
if(visited[node]==1) return ;
if(level==5){
flag = 1;
return ;
}
visited[node] = 1;
for(int i=0;i<v[node].size();i++){
int next = v[node][i];
if(visited[next]==1) continue;
dfs(next,level+1);
if(flag==1) return ;
}
}
int main() {
scanf("%d %d",&n,&m);
for(int i=0;i<m;i++){
int a,b; scanf("%d %d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
for(int i=0;i<n;i++){
memset(visited,0,sizeof(visited));
dfs(i,1);
if(flag==1){
cout<<"1";
break;
}
}
if(flag==0) cout<<"0";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLG07CnZlY3RvcjxpbnQ+IHZbMjAwMV07CmludCB2aXNpdGVkWzIwMDFdOwppbnQgZmxhZyA9IDA7CnZvaWQgZGZzKGludCBub2RlLCBpbnQgbGV2ZWwpewoJaWYodmlzaXRlZFtub2RlXT09MSkgcmV0dXJuIDsKCWlmKGxldmVsPT01KXsKCQlmbGFnID0gMTsKCQlyZXR1cm4gOwoJfQoJdmlzaXRlZFtub2RlXSA9IDE7Cglmb3IoaW50IGk9MDtpPHZbbm9kZV0uc2l6ZSgpO2krKyl7CgkJaW50IG5leHQgPSB2W25vZGVdW2ldOwoJCWlmKHZpc2l0ZWRbbmV4dF09PTEpIGNvbnRpbnVlOwoJCWRmcyhuZXh0LGxldmVsKzEpOwoJCWlmKGZsYWc9PTEpIHJldHVybiA7Cgl9Cn0KaW50IG1haW4oKSB7CglzY2FuZigiJWQgJWQiLCZuLCZtKTsKCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCWludCBhLGI7IHNjYW5mKCIlZCAlZCIsJmEsJmIpOwoJCXZbYV0ucHVzaF9iYWNrKGIpOwoJCXZbYl0ucHVzaF9iYWNrKGEpOwkKCX0KCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCW1lbXNldCh2aXNpdGVkLDAsc2l6ZW9mKHZpc2l0ZWQpKTsKCQlkZnMoaSwxKTsKCQlpZihmbGFnPT0xKXsKCQkJY291dDw8IjEiOwoJCQlicmVhazsKCQl9Cgl9CglpZihmbGFnPT0wKSBjb3V0PDwiMCI7CglyZXR1cm4gMDsKfQ==