#include<iostream>
#include<vector>
#include<algorithm>

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});
   }

   for(int i=0; i<(1<<N); i++){
      vector<int> v;
      for(int j=0; j<N; j++){
         v.push_back((i>>j)&1);
      }
      vector<int> used(M, 0);
      for(int k=0; k<N; k++){
         if(v[k]){
            for(auto e: g[k]){
               used[e.id]=1;
            }
         }
      }
      int s=0;
      for(int u: used) s+=u;
      if(s==M){
         reverse(v.begin(), v.end());
         bool Lz=true;
         for(int d: v){
            if(d==0){
               if(Lz){

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

   return 0;
}