#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5 * 100 * 1000;
set<pair<int, int> > S;
vector<int> g[MAXN];
int n, m, party[MAXN], f[MAXN];
int main() {
  ios::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int u, v;
    cin >> u >> v;
    g[u].push_back(v);
    g[v].push_back(u);
    party[u] = 0;
    party[v] = 0;
  }
  for (int i = 1; i <= n; i++) {
    f[i] = -(int)g[i].size();
    S.insert(pair<int, int>(f[i], i));
  }
  while (1) {
    pair<int, int> temp = *S.begin();
    int u = temp.second;
    if (-f[u] <= 1) {
      for (int i = 1; i <= n; i++) cout << party[i];
      cout << endl;
      return 0;
    }
    party[u] = 1 - party[u];
    S.erase(temp);
    f[u] = 0;
    for (int i = 0; i < (int)g[u].size(); i++) {
      int v = g[u][i];
      if (party[u] == party[v]) f[u]--;
    }
    S.insert(pair<int, int>(f[u], u));
    for (int i = 0; i < (int)g[u].size(); i++) {
      int v = g[u][i];
      S.erase(pair<int, int>(f[v], v));
      f[v] = 0;
      for (int j = 0; j < (int)g[v].size(); j++) {
        int w = g[v][j];
        if (party[v] == party[w]) f[v]--;
      }
      S.insert(pair<int, int>(f[v], v));
    }
  }
  return 0;
}
