#include<bits/stdc++.h>
using namespace std;
int n , m ; // đỉnh và cạnh
vector<int> ke[1001];
int type[1001];
int tmp ;
bool visited[1001];
void inp(){
cin >> n >> m ;
for(int i = 1 ; i <= m ; i++){
int x,y;
cin >> x >> y;
ke[x].push_back(y);
ke[y].push_back(x);
}
}
void ktao(){
memset(type,0,sizeof(type));
for(int i = 1 ; i <= n ; i++){
if(!ke[i].empty()){
type[i] = 1;
tmp = i ;
break;
}
}
}
void marked(){
queue<int> q;
q.push(tmp);
while(!q.empty()){
int p = q.front();
q.pop();
for(int x : ke[p]){
if(type[p] == 1){
if(!type[x]){
type[x] = 2;
q.push(x);
}
}
else if(type[p] == 2){
if(!type[x]){
type[x] = 1;
q.push(x);
}
}
}
}
}
int main(){
inp();
ktao();
marked();
for(int i = 1 ; i <= n ; i++){
for(int j = i + 1 ; j <= n ; j++){ // Changed i to j here
if(type[i] == type[j]){
for(int x : ke[i]){
if(j == x){
cout << "Khong phai do thi 2 phia \n";
return -1;
}
}
}
}
}
cout << "Do thi 2 phia \n"; // Print this if the graph is bipartite
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuICwgbSA7IC8vIMSR4buJbmggdsOgIGPhuqFuaAp2ZWN0b3I8aW50PiBrZVsxMDAxXTsKaW50IHR5cGVbMTAwMV07CmludCB0bXAgOwpib29sIHZpc2l0ZWRbMTAwMV07Cgp2b2lkIGlucCgpewogICAgY2luID4+IG4gPj4gbSA7IAogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbSA7IGkrKyl7CiAgICAgICAgaW50IHgseTsgCiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBrZVt4XS5wdXNoX2JhY2soeSk7CiAgICAgICAga2VbeV0ucHVzaF9iYWNrKHgpOwogICAgfQp9Cgp2b2lkIGt0YW8oKXsKICAgIG1lbXNldCh0eXBlLDAsc2l6ZW9mKHR5cGUpKTsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspewogICAgICAgIGlmKCFrZVtpXS5lbXB0eSgpKXsKICAgICAgICAgICAgdHlwZVtpXSA9IDE7CiAgICAgICAgICAgIHRtcCA9IGkgOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgbWFya2VkKCl7CiAgICBxdWV1ZTxpbnQ+IHE7IAogICAgcS5wdXNoKHRtcCk7CiAgICB3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgICBpbnQgcCA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGZvcihpbnQgeCA6IGtlW3BdKXsKICAgICAgICAgICAgaWYodHlwZVtwXSA9PSAxKXsKICAgICAgICAgICAgICAgIGlmKCF0eXBlW3hdKXsKICAgICAgICAgICAgICAgICAgICB0eXBlW3hdID0gMjsKICAgICAgICAgICAgICAgICAgICBxLnB1c2goeCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZih0eXBlW3BdID09IDIpewogICAgICAgICAgICAgICAgaWYoIXR5cGVbeF0pewogICAgICAgICAgICAgICAgICAgIHR5cGVbeF0gPSAxOwogICAgICAgICAgICAgICAgICAgIHEucHVzaCh4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGlucCgpOwogICAga3RhbygpOwogICAgbWFya2VkKCk7CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSBpICsgMSA7IGogPD0gbiA7IGorKyl7IC8vIENoYW5nZWQgaSB0byBqIGhlcmUKICAgICAgICAgICAgaWYodHlwZVtpXSA9PSB0eXBlW2pdKXsKICAgICAgICAgICAgICAgIGZvcihpbnQgeCA6IGtlW2ldKXsKICAgICAgICAgICAgICAgICAgICBpZihqID09IHgpewogICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJLaG9uZyBwaGFpIGRvIHRoaSAyIHBoaWEgXG4iOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCAiRG8gdGhpIDIgcGhpYSBcbiI7IC8vIFByaW50IHRoaXMgaWYgdGhlIGdyYXBoIGlzIGJpcGFydGl0ZQogICAgcmV0dXJuIDA7Cn0K