简单的搜索题,dfs搜出最长的路径即可
//============================================================================
// Name : 539.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int Max, n, m, len, a, b;
int d[30][30], vis[30][30];
void dfs(int k, int len){
if(Max < len) Max = len;
for(int i = 0;i < n;i++){
if(!vis[k][i]&&!vis[i][k]&&d[k][i] == 1){
vis[k][i] = 1;
dfs(i, len+1);
vis[k][i] = 0;
}
}
}
int main() {
freopen("a.txt", "r", stdin);
while(scanf("%d%d", &n, &m)&&(n||m)){
memset(d, 0, sizeof(d));
for(int i = 0;i < m;i++){
scanf("%d%d", &a, &b);
d[a][b] = 1;
d[b][a] = 1;
}
Max = 0;
for(int i = 0;i < n;i++){
memset(vis, 0, sizeof(vis));
dfs(i, 0);
}
printf("%d\n", Max);
}
return 0;
}