#include <bits/stdc++.h>
using namespace std;
const int N = 3 * 100005;
int n, m;
vector<int> edge[N];
int col[N], dif[N];
queue<int> q;
bool inque[N];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; ++i) {
    col[i] = rand() & 1;
  }
  for (int i = 0; i < m; ++i) {
    int a, b;
    scanf("%d%d", &a, &b);
    --a, --b;
    edge[a].push_back(b);
    edge[b].push_back(a);
    if (col[a] == col[b]) {
      ++dif[a];
      ++dif[b];
    }
  }
  for (int i = 0; i < n; ++i) {
    if (dif[i] >= 2) {
      q.push(i);
      inque[i] = true;
    }
  }
  while (q.size()) {
    int u = q.front();
    q.pop();
    inque[u] = false;
    if (dif[u] >= 2) {
      for (int i = 0; i < (int)edge[u].size(); ++i) {
        int v = edge[u][i];
        if (col[u] == col[v]) {
          --dif[u];
          --dif[v];
        } else {
          ++dif[u];
          ++dif[v];
          if (!inque[v] && dif[v] >= 2) {
            inque[v] = true;
            q.push(v);
          }
        }
      }
      col[u] ^= 1;
    }
  }
  for (int i = 0; i < n; ++i) {
    printf("%d", col[i]);
  }
  printf("\n");
  return 0;
}
