#include <bits/stdc++.h>   #pragma comment(linker,  /STACK:1073741824 )   using namespace std;   const int N = 3e5 + 100;   int col[N], d[N][2];   vector<int> v[N];   int main() {   #pragma warning(disable : 4996)     int n, m;     scanf( %d%d , &n, &m);     for (int i = 0; i < m; i++) {       int a, b;       scanf( %d%d , &a, &b);       a--, b--;       v[a].push_back(b);       v[b].push_back(a);     }     queue<int> q;     for (int i = 0; i < n; i++) {       d[i][0] = v[i].size();       if (d[i][0] > 1) q.push(i);     }     while (!q.empty()) {       int node = q.front();       q.pop();       if (d[node][col[node]] > 1) {         col[node] ^= 1;         for (int to : v[node]) {           d[to][col[node]]++;           d[to][col[node] ^ 1]--;           if (d[to][col[to]] > 1) q.push(to);         }       }     }     for (int i = 0; i < n; i++) printf( %d , col[i]);     return 0;   }   