#include <bits/stdc++.h>   const double eps = 1e-19;   const double PI = acos(-1.0);   const int INF = 1000 * 1000 * 1000 + 7;   const int MAXN = 300005;   using namespace std;   int n, m;   int ans[MAXN];   vector<int> g[MAXN];   bool used[MAXN];   void dfs(int v) {     int kol = 0;     for (int j = 0; j < (int)g[v].size(); j++)       if (ans[v] == ans[g[v][j]]) kol++;     if (kol > 1) {       ans[v] ^= 1;       for (int j = 0; j < (int)g[v].size(); j++) {         dfs(g[v][j]);       }     }   }   int main() {     scanf( %d %d , &n, &m);     for (int i = 0; i < m; i++) {       int ta, tb;       scanf( %d %d , &ta, &tb);       ta--;       tb--;       g[ta].push_back(tb);       g[tb].push_back(ta);     }     memset(ans, 0, sizeof ans);     for (int i = 0; i < n; i++) dfs(i);     for (int i = 0; i < n; i++) printf( %d , ans[i]);     return 0;   }   