#include <string>
#include <iostream>
#include <set>
using namespace std;
int main()
{
int n_pups, n_friendships;
cin >> n_pups >> n_friendships;
set<int> team1;
set<int> team2;
int pup1, pup2;
for(int i = 0; i < n_friendships; ++i)
{
cin >> pup1 >> pup2;
int shop;
if(team1.count(pup1))
{
if(!team1.count(pup2)) team1.insert(pup1), team2.insert(pup2);
else {printf("IMPOSSIBLE\n"); break;}
}
else if(team2.count(pup1))
{
if(!team2.count(pup2)) team2.insert(pup1), team1.insert(pup2);
else {printf("IMPOSSIBLE\n"); break;}
}
else if(team1.count(pup2))
{
if(!team1.count(pup1)) team1.insert(pup2), team2.insert(pup1);
else {printf("IMPOSSIBLE\n"); break;}
}
else if(team2.count(pup2))
{
if(!team1.count(pup1)) team2.insert(pup2), team1.insert(pup1);
else {printf("IMPOSSIBLE\n"); break;}
}
else
{
team1.insert(pup1);
team2.insert(pup2);
}
}
set<int>::iterator it_teams1 = team1.begin();
set<int>::iterator it_teams2 = team2.begin();
for(int i = 0; i < n_pups; ++i)
{
if(it_teams1 == team1.end()) printf("2") it_teams2++;
else if(it_teams2 == team2.end()) printf("1"), it_teams1++;
else if(*it_teams1 < *it_teams2) printf("1"), it_teams1++;
else if(*it_teams1 > *it_teams2) printf("2"), it_teams2++;
}
return 0;
}