#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> graph[300010];
int a[300010];
int bad[300010];
set<pair<int, int> > s;
char ans[300010];
void func(int x) {
  s.erase(make_pair(-bad[x], x));
  bad[x] = 0;
  int i;
  for ((i) = 0; (i) < (int)(graph[x].size()); (i)++)
    if (a[x] == a[graph[x][i]]) bad[x]++;
  s.insert(make_pair(-bad[x], x));
}
int main(void) {
  int M, x, y, i;
  cin >> N >> M;
  for ((i) = 0; (i) < (int)(M); (i)++) {
    scanf("%d%d", &x, &y);
    x--;
    y--;
    graph[x].push_back(y);
    graph[y].push_back(x);
  }
  for ((i) = 0; (i) < (int)(N); (i)++) bad[i] = graph[i].size();
  for ((i) = 0; (i) < (int)(N); (i)++) s.insert(make_pair(-bad[i], i));
  while (1) {
    int x = (s.begin()->second);
    if (bad[x] <= 1) break;
    a[x] = (a[x] ^ 1);
    func(x);
    for ((i) = 0; (i) < (int)(graph[x].size()); (i)++) func(graph[x][i]);
  }
  for ((i) = 0; (i) < (int)(N); (i)++) ans[i] = ((a[i] == 0) ? '0' : '1');
  ans[N] = '\0';
  printf("%s\n", ans);
  return 0;
}
