uses math;

Type kv=record
  a,b:integer;
 End;
Var ar:array[1..6]of kv;
    f:array[1..6] of boolean;
    st:array[1..3]of kv;
    s,ans:integer;
    temp:kv;

Function ravn(q,w:kv):boolean;
begin
  If (q.a=w.a)and(w.b=q.b) then ravn:=true else ravn:=false;
End;

Procedure Init;
Var i,j,q,w:integer;

Begin
For i:=1 to 6 do Begin
  f[i]:=true;
  read(q,w);
  If q>w then Begin ar[i].a:=w; ar[i].b:=q; End else Begin
                    ar[i].a:=q; ar[i].b:=w; end
End;
For i:=1 to 5 do If f[i]=true then
  For j:=i+1 to 6 do If (f[j]=true)and(ravn(ar[i],ar[j])) then begin
       f[j]:=false;
       break;
  End;
s:=0;
For i:=1 to 6 do
  If f[i] then inc(s);
If s<>3 then ans:=0
  else BEGIN

j:=0;
For i:=1 to 6 do
  If f[i] then Begin
    Inc(j);
    st[j]:=ar[i];
  End;



ans:=0;

If st[2].a=st[1].a then Begin
  temp.a:=min(st[2].b,st[1].b);
  temp.b:=max(st[2].b,st[1].b);
  If ravn(temp,st[3]) then ans:=1;
End;

If st[2].b=st[1].a then Begin
  temp.a:=min(st[2].a,st[1].b);
  temp.b:=max(st[2].a,st[1].b);
  If ravn(temp,st[3]) then ans:=1;
End;

If st[3].a=st[1].a then Begin
  temp.a:=min(st[3].b,st[1].b);
  temp.b:=max(st[3].b,st[1].b);
  If ravn(temp,st[2]) then ans:=1;
End;

If st[3].b=st[1].a then Begin
  temp.a:=min(st[3].a,st[1].b);
  temp.b:=max(st[3].a,st[1].b);
  If ravn(temp,st[2]) then ans:=1;
End;


END;

End;

Procedure Solve;
Begin
If ans=1 then write('POSSIBLE') else write('IMPOSSIBLE');
End;

Procedure Save;
Begin
End;

begin
assign(input,'box.in'); reset(input);
assign(output,'box.out'); rewrite(output);
  Init;
  Solve;
  Save;
close(input);
close(output);
end.
