#include <bits/stdc++.h>
using namespace std;
bool inq[300005];
int n, m, ans[300005], c[300005];
vector<int> V[300005];
list<int> Q;
int calc(int t) {
  int v = 0;
  for (int i = (0); i <= ((int)(V[t].size()) - 1); i++) {
    if (ans[t] == ans[V[t][i]]) v++;
  }
  return v;
}
int main() {
  scanf("%d %d", &n, &m);
  memset(ans, 0, sizeof(ans));
  for (int i = (1); i <= (m); i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    V[a].push_back(b);
    V[b].push_back(a);
  }
  memset(inq, 0, sizeof(inq));
  for (int i = (1); i <= (n); i++) {
    c[i] = calc(i);
    if (c[i] > 1) {
      Q.push_back(i);
      inq[i] = true;
    }
  }
  while (!Q.empty()) {
    int cur = Q.front();
    Q.pop_front();
    inq[cur] = false;
    if (c[cur] <= 1) continue;
    ans[cur] = 1 - ans[cur];
    c[cur] = calc(cur);
    for (int i = (0); i <= ((int)(V[cur].size()) - 1); i++) {
      int to = V[cur][i];
      c[to] = calc(to);
      if (!inq[to] && c[to] > 1) {
        inq[to] = true;
        Q.push_back(to);
      }
    }
  }
  for (int i = (1); i <= (n); i++) printf("%d", ans[i]);
  printf("\n");
  return 0;
}
