#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
vector<int> adj[maxn];
bool mark[maxn];
int cnt[maxn];
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int u, v;
    cin >> u >> v;
    u--, v--;
    adj[u].push_back(v);
    adj[v].push_back(u);
  }
  set<pair<int, int> > s;
  for (int i = 0; i < n; i++) {
    int sz = adj[i].size();
    s.insert({sz, i});
    cnt[i] = sz;
  }
  while (1) {
    auto t = *(s.rbegin());
    if (t.first <= 1) break;
    int o = t.second;
    mark[o] ^= 1;
    for (int v : adj[o]) {
      int ne = 0;
      for (int u : adj[v]) ne += (mark[u] == mark[v]);
      s.erase({cnt[v], v});
      cnt[v] = ne;
      s.insert({cnt[v], v});
    }
    int ne = 0;
    for (int u : adj[o]) ne += (mark[u] == mark[o]);
    s.erase({cnt[o], o});
    cnt[o] = ne;
    s.insert({cnt[o], o});
  }
  for (int i = 0; i < n; i++) cout << mark[i];
  cout << '\n';
}
