#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > s;
const int N = 300000 + 500;
int n, en[N], tot[N];
vector<int> adj[N];
bool ans[N];
int main() {
  int a, b, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) ans[i] = en[i] = tot[i] = 0;
  while (m--) {
    scanf("%d%d", &a, &b);
    adj[a].push_back(b);
    adj[b].push_back(a);
    en[a]++;
    tot[a]++;
    en[b]++;
    tot[b]++;
  }
  for (int i = 1; i <= n; i++) s.insert(pair<int, int>(-en[i], i));
  int u;
  while (1) {
    u = s.begin()->second;
    s.erase(s.begin());
    if (en[u] <= 1) break;
    ans[u] = ans[u] ^ 1;
    for (int i = 0; i < adj[u].size(); i++) {
      if (ans[adj[u][i]] == ans[u]) {
        s.erase(pair<int, int>(-en[adj[u][i]], adj[u][i]));
        en[adj[u][i]]++;
        s.insert(pair<int, int>(-en[adj[u][i]], adj[u][i]));
      } else {
        s.erase(pair<int, int>(-en[adj[u][i]], adj[u][i]));
        en[adj[u][i]]--;
        s.insert(pair<int, int>(-en[adj[u][i]], adj[u][i]));
      }
    }
    en[u] = tot[u] - en[u];
    s.insert(pair<int, int>(-en[u], u));
  }
  for (int i = 1; i <= n; i++) printf("%d", ans[i]);
  return 0;
}
