#include<iostream>#include<stdio.h>using namespace std;typedef int int64;struct rectangle{ int64 x1,y1; int64 x2,y2; int c;}R[ 1000 ],T1[100000],T2[100000];int num1,num2;void Add( int64 x1,int64 y1,int64 x2,int64 y2 ,int c){ T2[num2].x1=x1; T2[num2].y1=y1; T2[num2].x2=x2; T2[num2].y2=y2; T2[num2].c = c; num2++;}void deal(int pos){ int i; int k1,k2; for(i=0;i<num1;i++) { if( T1[i].x2 <= R[pos].x1 || T1[i].x1 >= R[pos].x2 ) {T2[num2++]=T1[i];continue; } if( T1[i].y2 <= R[pos].y1 || T1[i].y1 >= R[pos].y2 ) {T2[num2++]=T1[i];continue; } k1=max(T1[i].x1,R[pos].x1); k2=min(T1[i].x2,R[pos].x2); if( T1[i].x1 < k1 )Add(T1[i].x1,T1[i].y1,k1,T1[i].y2,T1[i].c); if( k2 < T1[i].x2 )Add(k2,T1[i].y1,T1[i].x2,T1[i].y2,T1[i].c); T1[i].x1=k1; T1[i].x2=k2; k1=max(T1[i].y1,R[pos].y1); k2=min(T1[i].y2,R[pos].y2); if( T1[i].y1 < k1 )Add(T1[i].x1,T1[i].y1,T1[i].x2,k1,T1[i].c); if( k2 < T1[i].y2 )Add(T1[i].x1,k2,T1[i].x2,T1[i].y2,T1[i].c); } for(i=0;i<num2;i++) T1[i]=T2[i]; T1[i]=R[pos]; num1=num2+1; num2=0;}void Incise(int n,int a[]){ num1 = num2 = 0; for(int i=0;i<n;i++) { deal(a[i]); }}int main(){ int n,c; int tp1,tp2; int a[ 1000 ],cas=1; int ans; while( scanf("%d%d",&n,&c) && n ) { for(int i=0;i<n;i++) {scanf("%d%d%d%d%d",&R[i].c,&R[i].x1,&R[i].y1,&R[i].x2,&R[i].y2);tp1 = min(R[i].x1,R[i].x2);tp2 = max(R[i].x1,R[i].x2);R[i].x1 = tp1,R[i].x2 = tp2;tp1 = min(R[i].y1,R[i].y2);tp2 = max(R[i].y1,R[i].y2);R[i].y1 = tp1,R[i].y2 = tp2;a[i] = i; } Incise(n,a); printf("The area of color %d in dataset %d is: ",c,cas++); ans = 0; for(int i=0;i<num1;i++) { if( T1[i].c == c ) {ans += (T1[i].x1 - T1[i].x2) * ( T1[i].y1 - T1[i].y2); } } printf("%dn",ans); }}