Please I need help.

Thanks in advance

[c]#include <stdio.h>

int n, m, max;

int matrix[30][30];

int not_visited[30];

void dfsbt(int, int);

int main(void)

{

register int i, j;

int from, to;

scanf("%d %d", &n, &m);

while(n || m) {

for(i = 0; i < n; i++) {

for(j = 0; j < n; j++) {

matrix

*[j] = 0;*

}

not_visited

}

not_visited

*= 1;*

}

for(i = 0; i < m; i++) {

scanf("%d %d", &from, &to);

matrix[from][to] = matrix[to][from] = 1;

}

max = 0;

for(i = 0; i < n; i++) {

if(not_visited}

for(i = 0; i < m; i++) {

scanf("%d %d", &from, &to);

matrix[from][to] = matrix[to][from] = 1;

}

max = 0;

for(i = 0; i < n; i++) {

if(not_visited

*) {*

dfsbt(i, 0);

}

}

printf("%dn", max);

scanf("%d %d", &n, &m);

}

return 0;

}

void dfsbt(int node, int length)

{

register int i;

not_visited[node] = 0;

if(length > max)

max = length;

for(i = 0; i < n; i++) {

if(matrix[node]dfsbt(i, 0);

}

}

printf("%dn", max);

scanf("%d %d", &n, &m);

}

return 0;

}

void dfsbt(int node, int length)

{

register int i;

not_visited[node] = 0;

if(length > max)

max = length;

for(i = 0; i < n; i++) {

if(matrix[node]

*) {*

matrix[node]matrix[node]

*= matrix**[node] = 0;*

dfsbt(i, length + 1);

matrix[node]dfsbt(i, length + 1);

matrix[node]

*= matrix**[node] = 1;*

}

}

}[/c]}

}

}[/c]