#include <iostream>
#include <map>
using namespace std;
map<int,map<int ,int> > Map;
int visited[100001];
int team[100001];
bool isPossible=true;
void dfs(int i,int t)
{
for(auto it=Map[i].begin();it!=Map[i].end();it++)
{
if(i != t)
{
if(visited[it->first] == 0)
{
team[it->first] = !team[i];
visited[it->first]=1;
dfs(it->first,i);
}
else
{
if(team[it->first] == team[i])
{
isPossible = false;
}
}
}
}
}
int main() {
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
Map[x-1][y-1]=1;
Map[y-1][x-1]=1;
}
for(int i=0;i<n;i++)
{
visited[i]=0;
team[i]=0;
}
for(int i=0;i<n;i++)
{
if(visited[i] == 0)
{
visited[i]=1;
dfs(i,-1);
}
}
if(isPossible == true)
{
for(int i=0;i<n;i++)
{
cout<<team[i]+1<<" ";
}
cout<<endl;
}
else
{
cout<<"IMPOSSIBLE"<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbWFwPGludCxtYXA8aW50ICxpbnQ+ID4gTWFwOwppbnQgdmlzaXRlZFsxMDAwMDFdOwppbnQgdGVhbVsxMDAwMDFdOwpib29sIGlzUG9zc2libGU9dHJ1ZTsKCnZvaWQgZGZzKGludCBpLGludCB0KQp7Cglmb3IoYXV0byBpdD1NYXBbaV0uYmVnaW4oKTtpdCE9TWFwW2ldLmVuZCgpO2l0KyspCgl7CgkJaWYoaSAhPSB0KQoJCXsKCQkJaWYodmlzaXRlZFtpdC0+Zmlyc3RdID09IDApCgkJCXsKCQkJCXRlYW1baXQtPmZpcnN0XSA9ICF0ZWFtW2ldOwoJCQkJdmlzaXRlZFtpdC0+Zmlyc3RdPTE7CgkJCQlkZnMoaXQtPmZpcnN0LGkpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJaWYodGVhbVtpdC0+Zmlyc3RdID09IHRlYW1baV0pCgkJCQl7CgkJCQkJaXNQb3NzaWJsZSA9IGZhbHNlOwoJCQkJfQoJCQl9CgkJfQoJfQp9CgoKaW50IG1haW4oKSB7CgoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCQoJZm9yKGludCBpPTA7aTxtO2krKykKCXsKCQlpbnQgeCx5OwoJCWNpbj4+eD4+eTsKCQlNYXBbeC0xXVt5LTFdPTE7CgkJTWFwW3ktMV1beC0xXT0xOwoJfQoJCglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCXZpc2l0ZWRbaV09MDsKCQl0ZWFtW2ldPTA7Cgl9CgoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQlpZih2aXNpdGVkW2ldID09IDApCgkJewoJCQl2aXNpdGVkW2ldPTE7CgkJCWRmcyhpLC0xKTsKCQl9Cgl9CgkKCWlmKGlzUG9zc2libGUgPT0gdHJ1ZSkKCXsKCQlmb3IoaW50IGk9MDtpPG47aSsrKQoJCXsKCQkJY291dDw8dGVhbVtpXSsxPDwiICI7CgkJfQoJCWNvdXQ8PGVuZGw7Cgl9CgllbHNlCgl7CgkJY291dDw8IklNUE9TU0lCTEUiPDxlbmRsOwoJfQoKCXJldHVybiAwOwp9