#include <bits/stdc++.h>
using namespace std;
template <class Ta, class Tb>
inline Tb cast(Ta a) {
  stringstream ss;
  ss << a;
  Tb b;
  ss >> b;
  return b;
};
const double EPS = 1e-9;
const int INF = 1000000000;
const int diri[8] = {-1, 0, 1, 0, -1, 1, 1, -1};
const int dirj[8] = {0, 1, 0, -1, 1, 1, -1, -1};
vector<vector<int> > G;
vector<int> gr;
vector<int> col;
void pinta(int first, int cc) {
  if (col[first] != -1) return;
  col[first] = cc;
  for (int i = 0; i < int(G[first].size()); ++i) pinta(G[first][i], 1 - cc);
}
int main() {
  int n, m;
  cin >> n >> m;
  G = vector<vector<int> >(n);
  gr = vector<int>(n, 0);
  for (int i = 0; i < int(m); ++i) {
    int a, b;
    cin >> a >> b;
    --a;
    --b;
    G[a].push_back(b);
    G[b].push_back(a);
    gr[a]++;
    gr[b]++;
  }
  col = vector<int>(n, -1);
  for (int i = 0; i < int(n); ++i)
    for (int j = 0; j < int(G[i].size()); ++j) {
      int u = G[i][j];
      if (gr[i] == 3 and gr[u] == 3 and col[i] == -1 and col[u] == -1) {
        int r = -1;
        for (int k = 0; k < int(G[u].size()); ++k) {
          int nu = G[u][k];
          if (col[nu] != -1) {
            r = 1 - col[nu];
            break;
          }
        }
        for (int k = 0; k < int(G[i].size()); ++k) {
          int nu = G[u][k];
          if (col[nu] != -1) {
            r = 1 - col[nu];
            break;
          }
        }
        if (r != -1)
          col[i] = col[u] = r;
        else
          col[i] = col[u] = 0;
      }
    }
  for (int i = 0; i < int(n); ++i)
    if (col[i] != -1)
      for (int j = 0; j < int(G[i].size()); ++j) pinta(G[i][j], 1 - col[i]);
  for (int i = 0; i < int(n); ++i)
    if (col[i] == -1) pinta(i, 0);
  vector<int> malo(n, 0);
  for (int i = 0; i < int(n); ++i)
    for (int j = 0; j < int(G[i].size()); ++j)
      if (col[i] == col[G[i][j]]) {
        malo[i]++;
        malo[G[i][j]]++;
      }
  for (int i = 0; i < int(n); ++i) malo[i] /= 2;
  bool algun = true;
  while (algun) {
    algun = false;
    for (int i = 0; i < int(n); ++i)
      if (malo[i] > 1) {
        algun = true;
        for (int j = 0; j < int(G[i].size()); ++j) {
          if (col[i] == col[G[i][j]]) {
            malo[G[i][j]]--;
            malo[i]--;
          } else {
            malo[G[i][j]]++;
            malo[i]++;
          }
        }
        col[i] = 1 - col[i];
      }
  }
  for (int i = 0; i < int(n); ++i) cout << col[i];
  cout << endl;
}
