#include<fstream.h>
#include<conio.h>
int a[20][20],gasit;
int viz[20];
int n,m;
void citire()
{ int x,y;
fstream f; //memorare graf in matrice de adiacenta
f.open("graf1.txt",ios::in);
if(f)
cout<<"ok";
else
cout<<"eroare";
f>>n>>m;
for(int i=1;i<=m;i++)
{f>>x>>y;
a[x][y]=a[y][x]=1;
}
}
void df(int nod)
{viz[nod]=1;
for(int k=1;k<=n;k++)
if(a[nod][k]==1)
{a[nod][k]=a[k][nod]=0;
if(viz[k]==1)
gasit=1;
else
df(k);
}
}
void main()
{clrscr();
citire();
df(1);
int ok=1;
for(int i=1;i<=n;i++)
if(viz[i]==0)
ok=0;
if(ok==0)
cout<<"graful nu este conex";
if(gasit==1)
cout<<"graful are cicluri";
if(gasit==0&&ok==1)
cout<<"graful este conex si fara cicluri , deci este arbore";
getch();
}