#include<iostream>
#include<vector>
using namespace std;
vector<int> ar[100001];
bool vis[100001];
int col[100001];
bool dfs(int node,int c)
{
vis[node]=1;
col[node]=c;
for(int child:ar[node])
{
if(!vis[child])
{
if(!dfs(child,c ^ 1))
{
return false;
}
}
else if(col[node] == col[child])
return false;
}
return true;
}
int main()
{
int n,m,a,b;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>a>>b,ar[a].push_back(b),ar[b].push_back(a);
}
bool flag=true;
for(int i=1;i<=n;i++)
{
if(vis[i]==false)
{
if(!dfs(i,1))
{
flag=false;
cout<<"IMPOSSIBLE"<<endl;
return 0;
}
}
}
if(flag)
{
for(int i=1;i<=n;i++)
{
if(col[i]==0)
cout<<2<<" ";
else
cout<<col[i]<<" ";
}
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxpbnQ+IGFyWzEwMDAwMV07CmJvb2wgdmlzWzEwMDAwMV07CmludCBjb2xbMTAwMDAxXTsKCmJvb2wgZGZzKGludCBub2RlLGludCBjKQp7Cgl2aXNbbm9kZV09MTsKCWNvbFtub2RlXT1jOwoJZm9yKGludCBjaGlsZDphcltub2RlXSkKCXsKCQlpZighdmlzW2NoaWxkXSkKCQl7CgkJIAlpZighZGZzKGNoaWxkLGMgXiAxKSkKCQkgCXsKCQkgCQlyZXR1cm4gZmFsc2U7CgkJCSB9CgkJfQoJCWVsc2UgaWYoY29sW25vZGVdID09IGNvbFtjaGlsZF0pCgkJCXJldHVybiBmYWxzZTsKCX0KCXJldHVybiB0cnVlOwp9CmludCBtYWluKCkKewoJaW50IG4sbSxhLGI7CgljaW4+Pm4+Pm07Cglmb3IoaW50IGk9MTtpPD1tO2krKykKCXsKCQljaW4+PmE+PmIsYXJbYV0ucHVzaF9iYWNrKGIpLGFyW2JdLnB1c2hfYmFjayhhKTsKCX0KCWJvb2wgZmxhZz10cnVlOwoJZm9yKGludCBpPTE7aTw9bjtpKyspCgl7CgkJaWYodmlzW2ldPT1mYWxzZSkKCQl7CgkJCWlmKCFkZnMoaSwxKSkKCQkJewoJCQkJZmxhZz1mYWxzZTsKCQkJCWNvdXQ8PCJJTVBPU1NJQkxFIjw8ZW5kbDsKCQkJCXJldHVybiAwOwoJCQl9CgkJfQoJfQoJaWYoZmxhZykKCXsKCQlmb3IoaW50IGk9MTtpPD1uO2krKykKCQl7CgkJCWlmKGNvbFtpXT09MCkKCQkJCWNvdXQ8PDI8PCIgIjsKCQkJZWxzZQoJCQkJY291dDw8Y29sW2ldPDwiICI7CgkJfQkKCX0KfQ==