一点小变形就是了。。】
#include<iostream>
#include<cstdio>
#define maxn 201
#define inf 999999
using namespace std;
int n,m,mapp[maxn][maxn],dis[maxn],vis[maxn];
void init()
{
fill(dis,dis+n,inf);
fill(vis,vis+n,0);
}
void dij(int s)
{
dis[s]=0;
while(1)
{
int v=-1;
for(int i=0;i<n;i++) if(!vis[i]&&(v==-1||dis[i]<dis[v])) v=i;
if(v==-1) break;//如果
vis[v]=1;
for(int i=0;i<n;i++) dis[i]=min(dis[i],dis[v]+mapp[v][i]);
}
}
int main()
{
cin.sync_with_stdio(false);
while(cin>>n>>m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j) mapp[i][j]=0;
else mapp[i][j]=inf;
}
}
while(m--)
{
int a,b;
cin>>a>>b;
mapp[a][b]=mapp[b][a]=1;
}
int flag=0;
for(int i=0;i<n;i++)
{
init();
if(flag) break;
dij(i);
for(int j=0;j<n;j++) if(dis[j]>=8)
{
flag=1;
break;
}
}
if(flag) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
return 0;
}