#include <bits/stdc++.h>
using namespace std;
const int MAXN = 300 * 1000;
int n, m;
vector<int> v[MAXN];
string ans;
int deg[MAXN];
set<pair<int, int>, greater<pair<int, int> > > s;
void Update(int a, int b) {
  s.erase(pair<int, int>(deg[b], b));
  if (ans[a] == ans[b]) {
    --deg[b];
  } else
    ++deg[b];
  s.insert(pair<int, int>(deg[b], b));
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; ++i) {
    int a, b;
    cin >> a >> b;
    --a;
    --b;
    v[a].push_back(b);
    v[b].push_back(a);
  }
  ans = string(n, '0');
  for (int i = 0; i < n; ++i) {
    deg[i] = ((int)(v[i]).size());
    s.insert(pair<int, int>(deg[i], i));
  }
  while (s.begin()->first > 1) {
    pair<int, int> cur = *s.begin();
    s.erase(s.begin());
    int c = cur.second;
    for (int i = 0; i < ((int)(v[c]).size()); ++i) {
      Update(c, v[c][i]);
    }
    ans[c] = char('1' - ans[c] + '0');
    deg[c] = ((int)(v[c]).size()) - deg[c];
    s.insert(pair<int, int>(deg[c], c));
  }
  cout << ans << endl;
  return 0;
}
