/**
[线段树] hdu 3255 Farming#求体积并
扫描水平面,每次用求面积并的方法求每个水平面的面积并,累加统计
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 66666
#define L(id) (id << 1)
#define R(id) (id << 1 | 1)
int n,m,pri[N];
int dy[N],cnt;
struct _st
{
int l,r,sum,cnt;
int mid()
{
return (l + r) >> 1;
}
}st[N<<2];
struct _cube
{
int x1,y1,x2,y2,h;
void input()
{
scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&h);
dy[cnt++] = y1;
dy[cnt++] = y2;
h = pri[h];
}
}cube[N];
struct _seg
{
int x,y1,y2,flag;
_seg(int a = 0,int b = 0,int c = 0,int d = 0)
{