//
当时应该是觉得得理性思考问题 长方体 从元素边开始考虑 所以 只有三种长度的边 即每四条相等的边一组 且每一组的边都来自不同的矩形
//
当时还是用选择排的序 代码冗长 如果是用vector<int> vis[6],代码应该好看一点 附原来blog上的代码
//
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int a[2],b[2],c[2],d[2],e[2],f[2],A[2],B[2],C[2],D[2],E[2],F[2];
int Q[2],W[2],R[2],T[2],Z[2],X[2];
while(scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&a[0],&a[1],&b[0],&b[1],&c[0],&c[1],&d[0],&d[1],&e[0],&e[1],&f[0],&f[1])!=EOF)
{
A[0]=a[0];A[1]=a[1];B[0]=b[0];B[1]=b[1];C[0]=c[0];C[1]=c[1];D[0]=d[0];D[1]=d[1];E[0]=e[0];E[1]=e[1];F[0]=f[0];F[1]=f[1];
Q[0]=a[0];Q[1]=a[1];W[0]=b[0];W[1]=b[1];R[0]=c[0];R[1]=c[1];T[0]=d[0];T[1]=d[1];Z[0]=e[0];Z[1]=e[1];X[0]=f[0];X[1]=f[1];
int N[12];
N[0]=a[0];N[1]=a[1];N[2]=b[0];N[3]=b[1];N[4]=c[0];N[5]=c[1];N[6]=d[0];N[7]=d[1];N[8]=e[0];N[9]=e[1];N[10]=f[0];N[11]=f[1];
int i,j,temp,count=0;
for(i=0;i<11;i++)
{
for(j=i+1;j<12;j++)
{
if(N[i]>N[j])
{
temp=N[j];
N[j]=N[i];
N[i]=temp;
}
}
}
if(N[0]==N[3]&&N[4]==N[7]&&N[8]==N[11])
{
for(i=0;i<=3;i++)
{
if(N[i]==a[0]||N[i]==a[1])
{
a[0]=0;
a[1]=0;
count++;
continue;
}
if(N[i]==b[0]||N[i]==b[1])
{
b[0]=0;
b[1]=0;
count++;
continue;
}
if(N[i]==c[0]||N[i]==c[1])
{
c[0]=0;
c[1]=0;
count++;
continue;
}
if(N[i]==d[0]||N[i]==d[1])
{
d[0]=0;
d[1]=0;
count++;
continue;
}
if(N[i]==e[0]||N[i]==e[1])
{
e[0]=0;
e[1]=0;
count++;
continue;
}
if(N[i]==f[0]||N[i]==f[1])
{
f[0]=0;
f[1]=0;
count++;
continue;
}
}
if(count==4)
{
for(i=4;i<=7;i++)
{
if(N[i]==A[0]||N[i]==A[1])
{
A[0]=0;
A[1]=0;
count++;
continue;
}
if(N[i]==B[0]||N[i]==B[1])
{
B[0]=0;
B[1]=0;
count++;
continue;
}
if(N[i]==C[0]||N[i]==C[1])
{
C[0]=0;
C[1]=0;
count++;
continue;
}
if(N[i]==D[0]||N[i]==D[1])
{
D[0]=0;
D[1]=0;
count++;
continue;
}
if(N[i]==E[0]||N[i]==E[1])
{
E[0]=0;
E[1]=0;
count++;
continue;
}
if(N[i]==F[0]||N[i]==F[1])
{
F[0]=0;
F[1]=0;
count++;
continue;
}
}
}
if(count==8)
{
for(i=8;i<=11;i++)
{
if(N[i]==Q[0]||N[i]==Q[1])
{
Q[0]=0;
Q[1]=0;
count++;
continue;
}
if(N[i]==W[0]||N[i]==W[1])
{
W[0]=0;
W[1]=0;
count++;
continue;
}
if(N[i]==R[0]||N[i]==R[1])
{
R[0]=0;
R[1]=0;
count++;
continue;
}
if(N[i]==T[0]||N[i]==T[1])
{
T[0]=0;
T[1]=0;
count++;
continue;
}
if(N[i]==X[0]||N[i]==X[1])
{
X[0]=0;
X[1]=0;
count++;
continue;
}
if(N[i]==Z[0]||N[i]==Z[1])
{
Z[0]=0;
Z[1]=0;
count++;
continue;
}
}
}
}
if(count==12)
printf("POSSIBLE\n");
else
printf("IMPOSSIBLE\n");
}
}