#include <bits/stdc++.h>
using namespace std;
const int MAXN = 300000;
int n, m, cnt[MAXN];
bool inStack[MAXN], party[MAXN];
stack<int> s;
vector<int> adj[MAXN];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = (0); i < (m); i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    adj[a - 1].push_back(b - 1);
    adj[b - 1].push_back(a - 1);
  }
  for (int i = (0); i < (n); i++) {
    cnt[i] = adj[i].size();
    if (cnt[i] > 1) {
      s.push(i);
      inStack[i] = true;
    }
  }
  while (!s.empty()) {
    int x = s.top();
    s.pop();
    inStack[x] = false;
    if (cnt[x] <= 1) {
      continue;
    }
    party[x] = !party[x];
    cnt[x] = (int)adj[x].size() - cnt[x];
    for (typeof((adj[x]).begin()) it = adj[x].begin(); it != adj[x].end();
         it++) {
      cnt[*it] += party[x] == party[*it] ? 1 : -1;
      if (!inStack[*it] && cnt[*it] > 1) {
        s.push(*it);
        inStack[*it] = true;
      }
    }
  }
  for (int i = (0); i < (n); i++) {
    putchar(party[i] ? '1' : '0');
  }
  putchar('\n');
  return 0;
}
