#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1073741824")
using namespace std;
const int N = 3e5 + 100;
int col[N], d[N][2];
vector<int> v[N];
int main() {
#pragma warning(disable : 4996)
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    a--, b--;
    v[a].push_back(b);
    v[b].push_back(a);
  }
  queue<int> q;
  for (int i = 0; i < n; i++) {
    d[i][0] = v[i].size();
    if (d[i][0] > 1) q.push(i);
  }
  while (!q.empty()) {
    int node = q.front();
    q.pop();
    if (d[node][col[node]] > 1) {
      col[node] ^= 1;
      for (int to : v[node]) {
        d[to][col[node]]++;
        d[to][col[node] ^ 1]--;
        if (d[to][col[to]] > 1) q.push(to);
      }
    }
  }
  for (int i = 0; i < n; i++) printf("%d", col[i]);
  return 0;
}
