#include <bits/stdc++.h>
using namespace std;
const int MAXN = 300010;
vector<int> G[MAXN];
bool vis[MAXN];
int ans[MAXN];
void dfs(int u) {
  vis[u] = true;
  int cnt = 0;
  for (int i = 0; i < G[u].size(); i++)
    if (ans[u] == ans[G[u][i]]) cnt++;
  if (cnt > 1) {
    ans[u] ^= 1;
    for (int i = 0; i < (int)G[u].size(); i++) {
      int v = G[u][i];
      if (ans[v] == ans[u]) dfs(v);
    }
  }
}
int main() {
  int N, M;
  while (scanf("%d%d", &N, &M) != EOF) {
    for (int i = 0; i <= N; i++) G[i].clear();
    for (int i = 0; i < M; i++) {
      int u, v;
      scanf("%d%d", &u, &v);
      G[u].push_back(v);
      G[v].push_back(u);
    }
    memset(vis, false, sizeof(vis));
    for (int i = 1; i <= N; i++) {
      dfs(i);
    }
    for (int i = 1; i <= N; i++) printf("%d", ans[i]);
    puts("");
  }
  return 0;
}
