#include <bits/stdc++.h>
using namespace std;
const int MN = 3 * 100 * 1000 + 20;
vector<int> G[MN];
int party[MN], E[MN];
set<pair<int, int> > Enemy;
void change(int v, int a) {
  Enemy.erase(make_pair(-E[v], v));
  E[v] += a;
  Enemy.insert(make_pair(-E[v], v));
}
int main() {
  int n, m, a, b;
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    cin >> a >> b;
    G[a].push_back(b);
    G[b].push_back(a);
  }
  for (int i = 1; i <= n; i++) {
    party[i] = i % 2;
    for (int j = 0; j < G[i].size(); j++)
      if ((G[i][j] % 2) == (i % 2)) E[i]++;
    Enemy.insert(make_pair(-E[i], i));
  }
  while ((-Enemy.begin()->first) > 1) {
    int v = Enemy.begin()->second;
    party[v] = party[v] == 0;
    for (int i = 0; i < G[v].size(); i++) {
      if (party[v] == party[G[v][i]]) change(G[v][i], +1);
      if (party[v] != party[G[v][i]]) change(G[v][i], -1);
    }
    Enemy.erase(make_pair(-E[v], v));
    E[v] = G[v].size() - E[v];
    Enemy.insert(make_pair(-E[v], v));
  }
  for (int i = 1; i <= n; i++) cout << party[i];
  return 0;
}
