#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> adj[333333];
bool read() {
  if (scanf("%d%d", &n, &m) == EOF) return false;
  for (int i = 0; i < n; i++) adj[i].clear();
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    a--;
    b--;
    adj[a].push_back(b);
    adj[b].push_back(a);
  }
  return true;
}
int mark[333333];
bool valid(int v) {
  int eq = 0;
  for (int j = 0; j < adj[v].size(); j++) {
    int x = adj[v][j];
    if (mark[x] == mark[v] && mark[v]) eq++;
  }
  return eq <= 1;
}
void process() {
  memset(mark, -1, sizeof mark);
  queue<int> bad;
  for (int i = 0; i < n; i++) bad.push(i);
  while (bad.empty() == false) {
    int cur = bad.front();
    bad.pop();
    if (valid(cur) == false) {
      mark[cur] *= -1;
      bad.push(cur);
    }
    for (int i = 0; i < adj[cur].size(); i++) {
      int x = adj[cur][i];
      if (valid(x) == false) {
        bad.push(x);
      }
    }
  }
  for (int i = 0; i < n; i++) printf("%d", mark[i] == 1 ? 1 : 0);
  puts("");
}
int main() {
  while (read()) process();
  return 0;
}
