#include <bits/stdc++.h>
using namespace std;
long long int n, m;
vector<vector<long long int> > g;
int main() {
  cin >> n >> m;
  g.resize(n + 1);
  long long int a, b;
  for (long long int i = 0; i < m; i++) {
    cin >> a >> b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  vector<long long int> check(n + 1, 0), st(n + 1, 0);
  set<pair<long long int, long long int>,
      greater<pair<long long int, long long int> > >
      q;
  for (long long int i = 1; i <= n; i++) {
    q.insert(make_pair(g[i].size(), i));
    st[i] = g[i].size();
  }
  long long int id, val;
  while (!q.empty()) {
    val = q.begin()->first;
    if (val <= (long long int)1) break;
    id = q.begin()->second;
    q.erase(q.begin());
    check[id] = 1 - check[id];
    st[id] = 0;
    for (long long int i = 0; i < g[id].size(); i++) {
      long long int to = g[id][i];
      if (check[to] == check[id]) {
        st[id]++;
        st[to]++;
        if (st[to] > 2) {
          q.erase(q.find(make_pair(st[to] - 1, to)));
        }
        if (st[to] > 1) q.insert(make_pair(st[to], to));
      } else {
        st[to]--;
        if (st[to] >= 1) {
          q.erase(q.find(make_pair(st[to] + 1, to)));
        }
        if (st[to] > 1) {
          q.insert(make_pair(st[to], to));
        }
      }
    }
    if (st[id] > 1) q.insert(make_pair(st[id], id));
  }
  for (long long int i = 1; i <= n; i++) cout << check[i];
}
