#include <bits/stdc++.h>
using namespace std;
struct V {
  vector<int> lnk;
  int p;
  int countBad();
};
V tab[400000];
int V::countBad() {
  int c = 0;
  for (__typeof((lnk).begin()) it = (lnk).begin(); it != (lnk).end(); ++it)
    if (tab[*it].p == p) ++c;
  return c;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int(i) = 0; (i) < (m); ++(i)) {
    int a, b;
    cin >> a >> b;
    tab[a - 1].lnk.push_back(b - 1);
    tab[b - 1].lnk.push_back(a - 1);
  }
  for (int(i) = 0; (i) < (n); ++(i)) tab[i].p = 0;
  queue<int> Q;
  for (int(i) = 0; (i) < (n); ++(i)) {
    if (tab[i].countBad() > 1) Q.push(i);
  }
  while (!Q.empty()) {
    int curr = Q.front();
    Q.pop();
    if (tab[curr].countBad() > 1) {
      tab[curr].p ^= 1;
      for (__typeof((tab[curr].lnk).begin()) it = (tab[curr].lnk).begin();
           it != (tab[curr].lnk).end(); ++it)
        Q.push(*it);
    }
  }
  for (int(i) = 0; (i) < (n); ++(i)) {
    printf("%d", tab[i].p);
  }
  printf("\n");
  return 0;
}
