#include
#include
#include
#include
using namespace std;
int main()
{ int n, m;
cin >> n >> m;
vector graph[n + 1];
for(int i =0 ; i < m; i++) {
int a, b;
cin >> a >> b;
a--;
b--;
graph[a].push_back(b);
graph[b].push_back(a);
}
vector color(n + 1, -1);
for(int i= 0 ;i < n; i++) {
if(color[i] != -1) continue;
queue q;
q.push(i);
q.push(1);
color[i] = 1;
while(!q.empty()) {
int node = q.front();
q.pop();
int c = q.front();
q.pop();
for(int i = 0; i < graph[node].size(); i++) {
int sosed = graph[node][i];
if(color[sosed] != -1 and color[sosed] == color[node]) {
return 0 * printf("IMPOSSIBLE\n");
}
if(color[sosed] == -1) {
color[sosed] = 3 - c;
q.push(sosed);
q.push(3 - c);
}
}
}
}
for(int i =0; i < n; i++) {
cout << color[i] << " ";
}
return 0;
}