#include <bits/stdc++.h>
using namespace std;
const int max_n = 300010;
const int max_m = 300010;
int n, m;
vector<int> adjl[max_n];
bool col[max_n];
int bad[max_n];
set<pair<int, int>, greater<pair<int, int> > > S;
set<pair<int, int>, greater<pair<int, int> > >::iterator it;
void update(int u) {
  S.erase(pair<int, int>(bad[u], u));
  bad[u] = 0;
  for (int i = 0; i < adjl[u].size(); ++i)
    bad[u] += (col[u] == col[adjl[u][i]]);
  S.insert(pair<int, int>(bad[u], u));
}
int main() {
  scanf("%d%d", &n, &m);
  int u, v;
  for (int i = 0; i < m; ++i) {
    scanf("%d%d", &u, &v);
    --u;
    --v;
    adjl[u].push_back(v);
    adjl[v].push_back(u);
  }
  fill(col, col + n, false);
  for (int i = 0; i < n; ++i) {
    bad[i] = (int(adjl[i].size()));
    S.insert(pair<int, int>(bad[i], i));
  }
  while (true) {
    u = S.begin()->second;
    if (bad[u] <= 1) break;
    col[u] = (not col[u]);
    update(u);
    for (int i = 0; i < adjl[u].size(); ++i) update(adjl[u][i]);
  }
  for (int i = 0; i < n; ++i) printf("%c", (col[i] ? '1' : '0'));
  printf("\n");
  return 0;
}
