#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 333;
const long long linf = 1e18 + 333;
const int N = 3e5 + 5;
int n, m, color[N];
vector<int> v[N];
vector<pair<int, int> > bad;
bool bug(int x) {
  int cnt = 0;
  for (__typeof((v[x]).begin()) it = (v[x]).begin(); it != (v[x]).end(); it++)
    cnt += color[*it] == color[x];
  return cnt > 1;
}
void move(int x) {
  color[x] = !color[x];
  for (__typeof((v[x]).begin()) it = (v[x]).begin(); it != (v[x]).end(); it++) {
    int u = *it;
    int cnt = 0;
    for (__typeof((v[u]).begin()) it = (v[u]).begin(); it != (v[u]).end(); it++)
      if (color[*it] == color[u]) bad.push_back(pair<int, int>(u, *it));
  }
}
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= m; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    v[x].push_back(y);
    v[y].push_back(x);
    bad.push_back(pair<int, int>(x, y));
  }
  for (int i = 0; i < bad.size(); i++) {
    int x = bad[i].first;
    int y = bad[i].second;
    if (bug(x)) move(x);
    if (bug(y)) move(y);
  }
  for (int i = 1; i <= n; i++) printf("%d", color[i]);
  puts("");
  return 0;
}
