/*
http://b...content-available-to-author-only...j.com/problems/MESA/
3 3
1 2
2 3
1 3
4 3
1 2
1 3
1 4
27 4
24 1
17 14
24 23
23 14
5 3
1 2
3 4
4 5
*/
#include <stdio.h>
#include <string.h>
using namespace std;
#define MAX_VERTICES 100
bool mesa[MAX_VERTICES][MAX_VERTICES];
int lado[MAX_VERTICES];
bool biparticao(int n, int vert,int lados=1){
lado[vert]=lados;
int ladoAtual=lados;
bool ret = true;
if(lados==1){
lados=2;
}else{
lados=1;
}
for(int i=0;i<n;i++){
if(mesa[vert][i]){
if(!lado[i]){
ret=biparticao(n,i,lados);
}else{
if(lado[i]==ladoAtual){
return false;
}
}
if(!ret){
return false;
}
}
}
return ret;
}
int main(){
int n; //Numero de convidados
int m; //Ligações entre os convidados
int u,v; //Quem é amigo de quem
bool bipartido;
int cont = 0;
while (scanf("%d %d",&n,&m)==2 && n!=EOF){
for(int i=0;i<n;i++){
memset(mesa[i],0,sizeof(int)*n);
lado[i]=0;
}
for(int i=0;i<m;i++){
scanf("%d %d",&u,&v);
mesa[u-1][v-1]=true;
mesa[v-1][u-1]=true;
}
bipartido = true;
for(int i=0; i<n; i++){
if(lado[i]==0 && !biparticao(n,i)){
bipartido = false;
break;
}
}
cont++;
printf("Instancia %d\n",cont);
if(bipartido){
printf("sim\n\n");
}else{
printf("nao\n\n");
}
}
return 0;
}
LyoKaHR0cDovL2IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmouY29tL3Byb2JsZW1zL01FU0EvCgozIDMKMSAyCjIgMwoxIDMKNCAzCjEgMgoxIDMKMSA0CjI3IDQgCjI0IDEgCjE3IDE0IAoyNCAyMyAKMjMgMTQKNSAzIAoxIDIgCjMgNCAKNCA1IAoKKi8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWF9WRVJUSUNFUyAxMDAKCmJvb2wgbWVzYVtNQVhfVkVSVElDRVNdW01BWF9WRVJUSUNFU107CmludCBsYWRvW01BWF9WRVJUSUNFU107Cgpib29sIGJpcGFydGljYW8oaW50IG4sIGludCB2ZXJ0LGludCBsYWRvcz0xKXsKCWxhZG9bdmVydF09bGFkb3M7CglpbnQgbGFkb0F0dWFsPWxhZG9zOwoJYm9vbCByZXQgPSB0cnVlOwoJaWYobGFkb3M9PTEpewoJCWxhZG9zPTI7Cgl9ZWxzZXsKCQlsYWRvcz0xOwoJfQoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJaWYobWVzYVt2ZXJ0XVtpXSl7CgkJCWlmKCFsYWRvW2ldKXsKCQkJCXJldD1iaXBhcnRpY2FvKG4saSxsYWRvcyk7CgkJCX1lbHNlewoJCQkJaWYobGFkb1tpXT09bGFkb0F0dWFsKXsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0KCQkJaWYoIXJldCl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9Cgl9CglyZXR1cm4gcmV0Owp9CgppbnQgbWFpbigpewoJaW50IG47IC8vTnVtZXJvIGRlIGNvbnZpZGFkb3MKCWludCBtOyAvL0xpZ2HDp8O1ZXMgZW50cmUgb3MgY29udmlkYWRvcwoJCglpbnQgdSx2OyAvL1F1ZW0gw6kgYW1pZ28gZGUgcXVlbQoJCglib29sIGJpcGFydGlkbzsKCQoJaW50IGNvbnQgPSAwOwoJCgl3aGlsZSAoc2NhbmYoIiVkICVkIiwmbiwmbSk9PTIgJiYgbiE9RU9GKXsKCQlmb3IoaW50IGk9MDtpPG47aSsrKXsKCQkJbWVtc2V0KG1lc2FbaV0sMCxzaXplb2YoaW50KSpuKTsKCQkJbGFkb1tpXT0wOwoJCX0KCQlmb3IoaW50IGk9MDtpPG07aSsrKXsKCQkJc2NhbmYoIiVkICVkIiwmdSwmdik7CgkJCW1lc2FbdS0xXVt2LTFdPXRydWU7CgkJCW1lc2Fbdi0xXVt1LTFdPXRydWU7CgkJfQoJCQoJCWJpcGFydGlkbyA9IHRydWU7CgkJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQkJaWYobGFkb1tpXT09MCAmJiAhYmlwYXJ0aWNhbyhuLGkpKXsKCQkJCWJpcGFydGlkbyA9IGZhbHNlOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJY29udCsrOwoJCXByaW50ZigiSW5zdGFuY2lhICVkXG4iLGNvbnQpOwkJCgkJaWYoYmlwYXJ0aWRvKXsKCQkJcHJpbnRmKCJzaW1cblxuIik7CgkJfWVsc2V7CgkJCXByaW50ZigibmFvXG5cbiIpOwoJCX0KCQkKCX0KCXJldHVybiAwOwp9