{
TASK: zala
LANG: Pascal
}
program zala;
var reb     : array[0..100,1..100] of word;
    maxr    : array[0..100] of word;
    crit    : array[0..100] of boolean;
    v, e    : word;
    i, j, k : word;
    a, b    : word;

procedure conn(a, b, ex : word);
label fin;
var i : word;
begin
 if a = b
  then
   crit[ex] := false
  else
   for i := 1 to maxr[a] do
    if not(reb[a][i] = ex)
     then
      conn(reb[a][i],b,ex);


end;

begin // main
readln(v,e);

for i := 0 to v-1 do
 begin
  maxr[i] := 0;
  crit[i] := true;
 end;

for i := 1 to e do
 begin
  readln(a,b);

  maxr[a] := maxr[a] + 1;
  reb[a][maxr[a]] := b;

  maxr[b] := maxr[b] + 1;
  reb[b][maxr[b]] := a;

 end;

for i := 0 to v-1 do
 for j := 1 to maxr[i]-1 do
  for k := j+1 to maxr[i] do
   conn(reb[i][j],reb[i][k],i);

for i := 0 to v-1 do
 writeln(i,' ',crit[i]);


end.
