#include<iostream>
#include<vector>

using namespace std;

struct E{
   int to, id;
};

signed main(){

   int N, M;
   cin>> N>> M;
   vector<E> g[N];
   for(int i=0; i<M; i++){
      int a, b;
      cin>> a>> b;
      g[a].push_back(E{b, i});
      g[b].push_back(E{a, i});
   }

   vector<int> v;
   int usedused[M]={};
   for(int n=N-1; n>=0; n--){
      int used[M];
      for(int i=0; i<M; i++) used[i]=usedused[i];
      for(int k=0; k<n; k++){
         for(auto e: g[k]){
            used[e.id]=1;
         }
      }
      bool y=false;
      for(auto e: g[n]){
         y|=(used[e.id]==0);
      }
      v.push_back(y);
      if(y){
         for(auto e:g[n]){
            usedused[e.id]=1;
         }
      }
   }

   bool Lz=true;
   for(int d: v){
      if(d==0){
         if(Lz){

         }else{
            cout<< d;
         }
      }else{
         if(Lz){
            cout<< d;
            Lz=false;
         }else{
            cout<< d;
         }
      }
   }cout<< endl;

   return 0;
}